接觸C#的第9天(for&while迴圈語句)
“最後一點就是堅持,有時候寫這些東西真的很痛苦,很讓人抓狂,但是你一旦你堅持下去,久而久之,你會看到自己的進步,某一天你回過頭去看自己以前寫的文章,當你能夠說出:“寫得真他媽菜”,那麼恭喜你,已經你升級了“。
—— “程式設計師應該堅持寫技術部落格”原文連結:https://blog.csdn.net/d6619309/article/details/52727326
31.(20)Fibonacci序列的前二項是0和1,且每一個後繼項是前二項的和。編一個程式,輸出項值不大於100的Fibonacci序列。
int f1 = 0;//定義首項 int f2 = 1;//定義第二項 int f3;//定義第三項 while (f1 < 100) { f3 = f1 + f2; Console.Write("{0},",f1); f1 = f2; f2 = f3;//斐波那契數列通項公式 } Console.ReadKey();
32.(40)編一個程式,輸入a,b,c的值,求出一元二次方程a*x*x+b*x+c=0的二個實數根。計算二個實數根必須使用Math類中的Sqrt()方法,計算指定數的開方。計算二個實數根,可以用公式(-b+Math.Sqrt(b*b-4*a*c))/(2*a)和(-b-Math.Sqrt(b*b-4*a*c))/(2*a)
double a, b, c; double x1, x2;//宣告變數 Console.WriteLine("請依次輸入一元二次方程ax^2+bx+c=0的三個係數:");//輸出字串 a = double.Parse(Console.ReadLine()); b = double.Parse(Console.ReadLine()); c = double.Parse(Console.ReadLine());//將輸入的字串轉化為相應的資料型別 if (b * b - 4 * a * c >= 0) { x1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a); x2 = (-b - Math.Sqrt(b * b - 4 * a * c)) / (2 * a);//求根公式 Console.WriteLine("這個方程的兩個實數根分別是{0},{1}", x1, x2); } else Console.WriteLine("很抱歉,這個方程沒有實數根^_^"); Console.ReadKey();
33.編一個程式,利用while迴圈語句,找出2到100之間的素數。
int i = 2, j;
bool b;
Console.WriteLine("2到100中的素數為:");
while (i <= 100)
{
b = true;
j = 2;
while (j <= i - 1)
{
if (i % j == 0)
{
b = false;
break;
}
j++;
}
if (b == true) Console.Write("{0} ", i);
i++;
}
Console.WriteLine();//輸出結果
Console.ReadKey();
34.(20)編一個程式,用while迴圈語句實現下列功能:有一籃雞蛋,不止一個,有人兩個兩個數,多餘一個,三個三個數,多餘一個,再四個四個地數,也多餘一個,請問這籃雞蛋至少有多少個。
int num = 2;
while (num < 100)
{
if (num % 2 == 1 && num % 3 == 1 && num % 4 == 1)//除以2餘1且除以3餘1且除以4餘1
{
Console.Write("這籃雞蛋至少有{0}個", num);
break;//找到這個數就停止執行否則繼續迴圈
}
num++;//從2開始逐漸遞增迴圈
35.(20)編一個程式,用for迴圈語句求出1到100之間的奇數之和。
int i, s = 0;
for (i = 1; i <= 100; i = i + 2)//(初始值,表示式,更新值)
{
s = s + i;//累加求和公式
}
Console.WriteLine("1-100之間所有奇數的和為{0}", s);//奇數之和等於(5050-(100/2))/2
Console.ReadKey();
36.(20)編一個程式,利用二重for迴圈語句,打印出九九乘法口訣表。
Console.WriteLine("========================九九乘法口訣表,專為中國兒童設計========================");
Console.WriteLine(Environment.NewLine);//換行
int s;
for (int i = 1; i <= 9; i++)//第一個乘數的迴圈遞增
{
for (int j = 1; j <= i; j++)//第二個乘數的迴圈遞增
{
s = i * j;
Console.Write("{0}*{1}={2} ", j, i, s);
}
Console.WriteLine();//兩個迴圈結束後輸出結果
}
Console.WriteLine(Environment.NewLine);//換行
Console.WriteLine("===============================Design By Zyy 2018===============================");
Console.ReadLine();
37.(20)編一個程式,定義一個有10個元素的陣列,使用for迴圈語句,從鍵盤上輸入10名同學的數學成績,分別求出最高分和最低分,並且求出10名同學的數學平均成績。
double[] math = new double[10];
Console.WriteLine("請依次輸入10名學生的數學成績:");
for (int i = 0; i < math.Length; i++)
{
math[i] = double.Parse(Console.ReadLine());
}
double max = math[0], min = math[0], ave, sum = 0;
for (int j = 0; j < math.Length; j++)
{
if (max < math[j])
max = math[j];
if (min > math[j])
min = math[j];
sum = sum + math[j];
}
ave = sum / math.Length;//取平均數
Console.WriteLine("最高分為{0},最低分為{1},平均分為{2}", max, min, ave);
Console.ReadKey();
38.(20)編一個程式,利用for迴圈語句,求出1!+2!+3!+...+10!的和。
int s = 0, jc = 1;
for (int j = 1; j <= 10; j++)
{
jc = jc * j;//每個數的階乘
s = s + jc;
}
Console.WriteLine("1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的和為{0}", s);
Console.ReadLine();
39.(20)編一個程式,用for迴圈語句求出1到100之間的奇數之和,以及偶數之和。
int sumeven = 0, sumodd = 0;//宣告變數:奇數和偶數的和分別為sumodd和sumeven
for (int even = 0; even <= 100; even = even + 2)//(even初始值,迴圈表示式,更新值)
{
sumeven = sumeven + even;
}
Console.WriteLine("1-100之間偶數的和為:{0}", sumeven);//輸出
for (int odd = 1; odd <= 100; odd = odd + 2)
{
sumodd = sumodd + odd;
}
Console.WriteLine("1-100之間奇數的和為:{0}", sumodd);
Console.ReadKey();
40.(20)編一個程式,用for迴圈語句,從鍵盤輸入10個實數,分別求出它們中的正數之和,以及負數之和。
int i;
double sum1 = 0, sum2 = 0, x;
for (i = 1; i <= 10; i++)//從輸入的第一個數開始執行,迴圈十次
{
Console.Write("請輸入一個實數:");
x = double.Parse(Console.ReadLine());
if (x > 0) //ifelse語句對正數求和和負數求和進行區分
sum1 += x;
else
sum2 = sum2+x; //賦值運算子的兩種寫法
} //大括號內的迴圈體為單次迴圈執行的內容
Console.WriteLine("正數之和:{0},負數之和:{1}", sum1, sum2);
Console.ReadKey();
以上十道題目是對上一篇迴圈語句講解的鞏固,所有知識點在之前均有涉及,出現的一個Math類的方法就是Math.sqrt()用在求解一元二次方程中求平方根。其餘不再贅述,關鍵程式碼均有註釋。
JKCQW!