例12:在全系1000個學生中,徵集慈善捐款,當總數達到10萬元時就結束,統計此時的捐款人數,以及平均每人捐款的數目。
解題思路:顯然應該用迴圈來處理。實際實際迴圈的次數事先不能確定,可以設定為最大值(1000)在迴圈體中累計捐款總數,並用if語句檢查是否達到10萬元,如果達到就不再繼續執行迴圈,終止累加,並計算人均捐款數。
原始碼演示:
#include<stdio.h>//標頭檔案 int main()//主函式 { float amount,aver,total;//定義浮點型變數 float sum=100000; //定義浮點型變數且賦初值 int i;//定義整型變數 for(i=1,total=0;i<1001;i++)//迴圈條件 { printf("請依次輸入捐款錢數:");//提示語句 scanf("%f",&amount); //鍵盤輸入 total=total+amount; if(total>sum) break;//跳出迴圈 } aver=total/i; printf("第%d個人捐款之後達到10萬+\n平均每人捐款:%5.2f\n",i,aver); return 0;//函式返回值為0 }
編譯執行結果如下:
請依次輸入捐款錢數:1000請依次輸入捐款錢數:45678請依次輸入捐款錢數:34521請依次輸入捐款錢數:7000請依次輸入捐款錢數:456.3請依次輸入捐款錢數:15689第6個人捐款之後達到10萬+平均每人捐款:17390.72--------------------------------Process exited after 23.79 seconds with return value 0請按任意鍵繼續. . .
break的作用是使流程跳到迴圈體之外,接著執行迴圈體下面的語句。
最新評論