C語言for語句用法詳解
首先,這里所提到的類C語言指的是如C、C++、C#和Java等語法和C語言一樣或類似的程序設計語言。這些語言中,for語句的語法和執(zhí)行流程都是一樣的。本文將就這一語句的用法進行一個較為深入的討論。
for語句:
{
循環(huán)語句
}
表達式1 給循環(huán)變量賦初值
表達式2 為循環(huán)條件
表達式3 用來修改循環(huán)變量的值,稱為循環(huán)步長。
for語句的執(zhí)行流程:
例:編程計算:1+2+3+...+99+100的結(jié)果。
這是累加問題,累加問題的通用表達式為:S = S + T;
其中,S是一個變量,用來存儲累加最后的結(jié)果,稱之為累加器;T是一個表達式,代表每次需要加入累加器的中的值。
累加一般是通過循環(huán)結(jié)構(gòu)實現(xiàn)的。循環(huán)之前要設置累加器S的初始值為0。
累加項T可以是很簡單的表達式,也有可能是一個通過分析得到的較復雜的表達式。
int S = 0;
for (int i = 1; i <= 100; i++)
{
  S = S + i;
}
printf("%d\n",S);
注意:
1)對于已經(jīng)確定是累加算法的題目,首先確定累加項與循環(huán)變量的關(guān)系;
2)然后,考慮第一個累加項的值是多少,以確定循環(huán)變量的初值;
3)其次,確定最后一個累加項的值,確定循環(huán)條件;
4)最后,考慮每個累加項之間的關(guān)系,以確定循環(huán)變量的變化(步長值)。
例:編程計算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。
連乘的算法和累加算法相似,循環(huán)體實現(xiàn)的是S = S * T的形式。需要注意的S的初值不是0,而是要設為1。
在求連乘時,由于每乘一次結(jié)果增長都非???,所以應該注意是否會出現(xiàn)溢出的問題。
循環(huán)程序設計思路:
(1)輸入是什么?用來確定原始值。
(2)輸出是什么?確定應該輸出的結(jié)果。
(3)從輸入轉(zhuǎn)換為輸出需要怎樣的步驟,是否需要重復(確定是否需要使用循環(huán)語句以及循環(huán)語句的內(nèi)容)。
(4)如果需要重復,能否提前預知重復的次數(shù)?用來確定使用while、do while、for中的哪種循環(huán)語句。
(5)何時不再需要重復?用來確定循環(huán)條件以及循環(huán)體中使循環(huán)條件趨近于0的語句。
例:水仙花數(shù)、四葉玫瑰數(shù)、五角星數(shù)、六位數(shù)的問題。
水仙花數(shù):每位數(shù)字的3次冪之和等于它本身。例:1^3 + 5^3 + 3^3 = 153。
四葉玫瑰數(shù):每位數(shù)字的4次冪之和等于它本身。
五角星數(shù):每位數(shù)字的5次冪之和等于它本身。
六位數(shù):每位數(shù)字的6次冪之和等于它本身。
// 打印出所有的水仙花數(shù)
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);
     }
    }
或:
// 打印出所有水仙花數(shù)
    int i,j,k,n,s;
    printf("水仙花數(shù)有:\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);
      }
    }
最后我用例子來總結(jié)一下吧! 下面的例子是一個對1-10這10個數(shù)求和的例子。
int i, sum = 0, num = 10; // 聲明幾個變量:i 計數(shù), sum 存儲最后的總和, num 表示多少個數(shù),用來控制邊界。
for(i = 1; i <= num; i++) // for語句包含三個語句,用;隔開。
{ //1設置初始值,2邊界控制,3通常用來調(diào)整計數(shù)值。
sum += i; // 相當于 sum = sum + i; 表示不斷地加i。 {}內(nèi)的語句均為循環(huán)體,用4表示。
} // for循環(huán)的執(zhí)行順序為 1-2-4-3-2-4-3-2-4-3-2................直到i > num.這時,將退出循環(huán)。
printf("The sum from 1 to 10 is ", sum); // 打印輸出sum值。
上一篇:算法學習入門之使用C語言實現(xiàn)各大基本的排序算法
欄 目:C語言
本文標題:C語言for語句用法詳解
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/2638.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
 - 04-02c語言的正則匹配函數(shù) c語言正則表達式函數(shù)庫
 - 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
 - 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對數(shù)怎么表達
 - 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
 - 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
 - 04-02c語言沒有round函數(shù) round c語言
 - 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
 - 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
 - 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘
 


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
 - 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
 - 04-02c語言的正則匹配函數(shù) c語言正則表達
 - 04-02c語言用函數(shù)寫分段 用c語言表示分段
 - 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
 - 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
 - 04-02c語言沒有round函數(shù) round c語言
 - 04-02c語言分段函數(shù)怎么求 用c語言求分段
 - 04-02C語言中怎么打出三角函數(shù) c語言中怎
 - 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
 
隨機閱讀
- 08-05織夢dedecms什么時候用欄目交叉功能?
 - 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 01-11ajax實現(xiàn)頁面的局部加載
 - 01-10C#中split用法實例總結(jié)
 - 08-05DEDE織夢data目錄下的sessions文件夾有什
 - 01-10SublimeText編譯C開發(fā)環(huán)境設置
 - 01-10使用C語言求解撲克牌的順子及n個骰子
 - 01-10delphi制作wav文件的方法
 - 04-02jquery與jsp,用jquery
 


