當我輸入“15 20 0 3 -1”時,我一直試圖讓這段代碼給我輸出“20 9.50”,但它一直給我輸出“20 0.55”。這是我制作的代碼:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int largest = 0;
int number = 0;
int count = 0;
double avg = 0;
while (number >= 0) {
cin >> number;
if (number >= 0) {
if (number > largest) {
largest = number;
}
avg = number; count;
}
if (count > 0) {
avg /= count;
}
}
cout << largest << " " << fixed << setprecision(2) << avg << endl;
return 0;
}
誰能指出我如何得到錯誤的輸出?我正在學習 C ,但我還是新手。希望我沒有受到太嚴厲的對待,任何幫助表示贊賞。
uj5u.com熱心網友回復:
我不確定您是否應該“即時”保持平均值。
更好、更不容易出錯的方法是在回圈的整個生命周期內保持一個總數。然后,在回圈之后,您應該通過while
除以.total
count
僅供參考,對于其他所有人:-1 結束while
回圈,并且total
&count
不應在每個輸入的結尾包含 -1。
以下代碼給出 的輸出,20 9.50
輸入為15 20 0 3 -1
。
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int largest = 0;
int number = 0;
int count = 0;
double avg = 0;
double total = 0;
while (number >= 0) {
cin >> number;
if (number >= 0) {
if (number > largest) {
largest = number;
}
//avg = number; count;
total = number; count;
}
//if (count > 0) {
// avg /= count;
}
avg = total / count;
cout << largest << " " << fixed << setprecision(2) << avg << endl;
return 0;
}
uj5u.com熱心網友回復:
您將 avg 除以 count 幾次。但是你必須在回圈之后再做一次
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int largest = 0;
int number = 0;
int count = 0;
double avg = 0;
while (number >= 0) {
cin >> number;
if (number >= 0) {
if (number > largest) {
largest = number;
}
avg = number; count;
}
}
if (count > 0) {
avg /= count;
}
cout << largest << " " << fixed << setprecision(2) << avg << endl;
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/508353.html
標籤:C
上一篇:c 異步多任務實作
下一篇:為什么浮點下溢發生在2?12??