2、 程式閱讀題(共6小題,每小題10分,共60分) int main()
{
?int n = 10;
?int sum = 0, cnt = 0, avg = 0;
?for (int i = 1; i <= n; i++)
?if (i % 3 == 0)
?{
?sum = sum + i;
?cnt++;
?} ?avg = sum / cnt;
?cout << n << "以內能被3整除的整數有" << cnt << "個,總和為" << sum << ",平均值為" << avg << endl;
} 1. 請寫出上面這段代碼的運行結果。 2. 將代碼中的n改為12時,運行結果是什么? 3. 將代碼中的n改為20時,運行結果是什么? 4. 上面這段代碼是否存在什么可靠性問題? 5. 上面這段代碼是否存在什么性能問題? 6. 將代碼中的n改為2,會發生什么?為什么?
uj5u.com熱心網友回復:
6.將代碼中的n改為2,cnt會等于0;0做除數了uj5u.com熱心網友回復:
供參考:#include<iostream.h>
int main()
{
int n = 10;
int sum = 0, cnt = 0, avg = 0;
for (int i = 1; i <= n; i++)
if (i % 3 == 0){
sum = sum + i;
cnt++;
}
avg = sum / cnt;
cout << n << "以內能被3整除的整數有" << cnt << "個,總和為" << sum
<< ",平均值為" << avg << endl;
}
//10以內能被3整除的整數有3個,總和為18,平均值為6
//12以內能被3整除的整數有4個,總和為30,平均值為7
//20以內能被3整除的整數有6個,總和為63,平均值為10
//4 5 缺少對cnt值的判斷,潛在的 avg = sum / cnt;會出錯
//將代碼中的n改為2,cnt會等于0, avg = sum / cnt;出錯
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/269201.html
標籤:C++ 語言
上一篇:有沒有方法可以給物件動態添加屬性
下一篇:求求幫忙看一下C語言的編程題
