各種程式語言中一定都會有迴路/迴圈結構,只是迴路/迴圈結構的語法稍有不同而已,C跟C++的迴路/迴圈結構語法有兩種,一種是while,另一種是for。跟if很像,利用括號設定成立的條件,透過大括號設定成立後執行的程式碼。與if不同的是,只要是條件成立,會不斷的循環,所以,如果在迴圈裡沒有改變條件,會形成永不停止的無窮迴圈接下來。
int i;
scanf ("%d", &i);
int count = 0;
while (count <= i) {
printf ("%d\\n", count);
count ++;
}
以上面的while來說,就是count從0開始,每次執行後count就加1,一直執行到count大於i為止。
如果要讓使用者輸入一個數字,決定接下來輸入幾個數字
#include <stdio.h>
main(){
int count;
scanf("%d", &count);
int i = 0;
while(i < count){
int n;
scanf("%d", &n);
i++;
}
}
如果要計算平均值,那就是先加總所有的值,再除以數值的數量
#include <stdio.h>
main(){
int count;
scanf("%d", &count);
int i = 0;
**int sum = 0;**
while(i< count){
int n;
scanf("%d", &n);
**sum = sum + n;**
i++;
}
printf("%d", **sum/count**);
}
別忘了這樣會取整數,要看到小數點並且只取小數點下三位,就要改成:
#include <stdio.h>
main(){
int count;
scanf("%d", &count);
int i = 0;
int sum = 0;
while(i < count){
int n;
scanf("%d", &n);
sum = sum + n;
i++;
}
printf("**%.3f**", **(float)**sum/count);
}
累加的部分可以改成:
//sum = sum + n;
sum += n;
另外一種寫法,是當使用者輸入一個特定的數字(例如:0或-1)時就停止輸入,並且計算平均數,一開始會這樣寫,但是,有個邏輯上的問題:
#include <stdio.h>
main(){
int count = 0;
int sum = 0;
int n = 0;
while(n >= 0){
scanf("%d", &n);
sum += n;
count ++;
}
printf("%.3f", (float)sum/count);
}
因為把「-1」也算進去,所以,結果就不對了~ 先把scanf()移到最後,雖然還會多算一次,但是我們把count起始值設為「-1」,沖銷多算一次的次數,當然,也可以在計算的時候扣除,解決的方法很多,大家可以想一個自己能記得住的方法。