a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

C語言for語句用法詳解

2020-01-26 14:49:08
字體:
來源:轉載
供稿:網友

首先,這里所提到的類C語言指的是如C、C++、C#和Java等語法和C語言一樣或類似的程序設計語言。這些語言中,for語句的語法和執行流程都是一樣的。本文將就這一語句的用法進行一個較為深入的討論。

for語句:

復制代碼 代碼如下:
for (表達式1;表達式2;表達式3)
{
  循環語句
}

表達式1 給循環變量賦初值
表達式2 為循環條件
表達式3 用來修改循環變量的值,稱為循環步長。

for語句的執行流程:

例:編程計算:1+2+3+...+99+100的結果。
這是累加問題,累加問題的通用表達式為:S = S + T;
其中,S是一個變量,用來存儲累加最后的結果,稱之為累加器;T是一個表達式,代表每次需要加入累加器的中的值。
累加一般是通過循環結構實現的。循環之前要設置累加器S的初始值為0。
累加項T可以是很簡單的表達式,也有可能是一個通過分析得到的較復雜的表達式。

int S = 0;for (int i = 1; i <= 100; i++){  S = S + i;}printf("%d/n",S);

注意:
1)對于已經確定是累加算法的題目,首先確定累加項與循環變量的關系;
2)然后,考慮第一個累加項的值是多少,以確定循環變量的初值;
3)其次,確定最后一個累加項的值,確定循環條件;
4)最后,考慮每個累加項之間的關系,以確定循環變量的變化(步長值)。

例:編程計算S = a + aa + aaa + aaaa + ... 的前n項之和。
例如:如果a = 3,n = 5,則表達式為:S = 3 + 33 + 333 + 3333 + 33333。

int S = 0;int t = 0;for (int i = 0;i < 5;i++ ){  t = t * 10 + 3;  S = S + t;}printf("%d/n",S);

累加算法也可以演化為連乘的形式:S = 1 * 2 * 3 * ... * n。
連乘的算法和累加算法相似,循環體實現的是S = S * T的形式。需要注意的S的初值不是0,而是要設為1。
在求連乘時,由于每乘一次結果增長都非常快,所以應該注意是否會出現溢出的問題。

循環程序設計思路:

(1)輸入是什么?用來確定原始值。
(2)輸出是什么?確定應該輸出的結果。
(3)從輸入轉換為輸出需要怎樣的步驟,是否需要重復(確定是否需要使用循環語句以及循環語句的內容)。
(4)如果需要重復,能否提前預知重復的次數?用來確定使用while、do while、for中的哪種循環語句。
(5)何時不再需要重復?用來確定循環條件以及循環體中使循環條件趨近于0的語句。

例:水仙花數、四葉玫瑰數、五角星數、六位數的問題。

水仙花數:每位數字的3次冪之和等于它本身。例:1^3 + 5^3 + 3^3 = 153。
四葉玫瑰數:每位數字的4次冪之和等于它本身。
五角星數:每位數字的5次冪之和等于它本身。
六位數:每位數字的6次冪之和等于它本身。

// 打印出所有的水仙花數int i,j,k,n,s;for(i = 1;i <= 9;i++)  for(j = 0;j <= 9;j++)   for(k = 0;k <= 9;k++)   {     n = k * k * k + j * j * j + i * i * i;     s = i * 100 + j * 10 + k;     if (n == s)     {      printf("%d/n",n);     }    }或:// 打印出所有水仙花數    int i,j,k,n,s;    printf("水仙花數有:/n");    for(n = 100;n < 1000;n++)    {      i = n / 100;     /*分解出百位*/      j = n / 10 % 10;   /*分解出十位*/      k = n % 10;     /*分解出個位*/      s = i * i * i + j * j * j + k * k * k;      if(s == n)      {        printf("%d/n",n);      }    }

最后我用例子來總結一下吧! 下面的例子是一個對1-10這10個數求和的例子。

復制代碼 代碼如下:

int i, sum = 0, num = 10;       // 聲明幾個變量:i 計數, sum 存儲最后的總和, num 表示多少個數,用來控制邊界。
for(i = 1; i <= num; i++)   // for語句包含三個語句,用;隔開。
{                                     //1設置初始值,2邊界控制,3通常用來調整計數值。
    sum += i;          // 相當于 sum = sum + i; 表示不斷地加i。 {}內的語句均為循環體,用4表示。
}  // for循環的執行順序為 1-2-4-3-2-4-3-2-4-3-2................直到i > num.這時,將退出循環。
printf("The sum from 1 to 10 is ", sum);     // 打印輸出sum值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: www,四虎| 日韩电影免费在线观看中文字幕 | 国产欧美精品一区aⅴ影院 日韩精品区 | 日本一二三区在线 | av在线播放免费 | 亚洲一级免费观看 | 看片一区 | 亚洲欧洲无码一区二区三区 | 国产视频三区 | 国产精品1区2区 | 亚洲美女视频 | 国产中文在线 | 奇米av| 超碰日韩| 成人免费一区二区三区视频网站 | 日韩欧美一区二区三区免费观看 | 国产精品美女一区二区三区 | 在线观看日韩精品 | 日韩一区二区福利视频 | 中文字幕日本一区 | 色婷婷中文字幕 | 亚洲综合福利视频 | 久热精品国产 | 日本视频免费高清一本18 | 欧美日韩一区二区在线播放 | 国产精品视频999 | 亚洲高清视频在线 | 久久99精品久久久久久琪琪 | 精品欧美黑人一区二区三区 | 成人精品在线 | 韩国女主播bj精品久久 | 久免费视频 | 就操成人网 | 国产精品久久久一区二区 | 国产成人高清精品免费5388 | 超碰97久久 | 欧美一区二区精品 | 国产.com| 国产黄在线观看 | 麻豆视频在线 | 国内精品视频 |