當前位置

首頁 > 商務英語 > 計算機英語 > c語言for語句的用法

c語言for語句的用法

推薦人: 來源: 閱讀: 3.87K 次

C、C++、C#和Java這些語言中,for語句的語法和執行流程都是一樣的。本文將就這一語句的在C語言中的用法進行一個較為深入的討論。

ing-bottom: 75%;">c語言for語句的用法

  c語言for語句的用法:

複製程式碼 程式碼如下:

for (表示式1;表示式2;表示式3)

{

迴圈語句

}

表示式1 給迴圈變數賦初值

表示式2 為迴圈條件

表示式3 用來修改迴圈變數的值,稱為迴圈步長。

for語句的執行流程:

例:程式設計計算:1+2+3+...+99+100的結果。

這是累加問題,累加問題的通用表示式為:S = S + T;

其中,S是一個變數,用來儲存累加最後的結果,稱之為累加器;T是一個表示式,代表每次需要加入累加器的中的值。

累加一般是通過迴圈結構實現的。迴圈之前要設定累加器S的初始值為0。

累加項T可以是很簡單的表示式,也有可能是一個通過分析得到的較複雜的表示式。

?

1

2

3

4

5

6int S = 0;

for (int i = 1; i <= 100; i++)

{

S = S + i;

}

printf("%dn",S);

注意:

1)對於已經確定是累加演算法的題目,首先確定累加項與迴圈變數的關係;

2)然後,考慮第一個累加項的值是多少,以確定迴圈變數的初值;

3)其次,確定最後一個累加項的值,確定迴圈條件;

4)最後,考慮每個累加項之間的關係,以確定迴圈變數的變化(步長值)。

例:程式設計計算S = a + aa + aaa + aaaa + ... 的前n項之和。

例如:如果a = 3,n = 5,則表示式為:S = 3 + 33 + 333 + 3333 + 33333。

?

1

2

3

4

5

6

7

8int S = 0;

int t = 0;

for (int i = 0;i < 5;i++ )

{

t = t * 10 + 3;

S = S + t;

}

printf("%dn",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次冪之和等於它本身。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28// 列印出所有的水仙花數

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("%dn",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("%dn",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值。