C++;平均结果不正确 我的C++程序有问题。我必须做一个简单的程序,它将用户输入的值相加,求和,然后计算平均值。程序必须计算平均值,直到用户输入0 int value; float sum = 0.0; int counter = 0; float average; cout << "Enter value " << endl; cin >> value; while (value != 0) { cout << "Enter value" << endl; cin >> value; counter++; sum += value; } average = sum / counter; cout << "Average = " << average; return 0; int值; 浮动总和=0.0; int计数器=0; 浮动平均; 库特值; while(值!=0) { 库特值; 计数器++; 总和+=数值; } 平均值=总和/计数器; 不能像这样更改while循环吗 while (value != 0) { counter++; sum += value; cout << "Enter value" << endl; cin >> value; } while(值!=0) { 计数器++; 总和+=数值; 库特值; }
不要像这样编写重复的代码C++;平均结果不正确 我的C++程序有问题。我必须做一个简单的程序,它将用户输入的值相加,求和,然后计算平均值。程序必须计算平均值,直到用户输入0 int value; float sum = 0.0; int counter = 0; float average; cout << "Enter value " << endl; cin >> value; while (value != 0) { cout << "Enter value" << endl; cin >> value; counter++; sum += value; } average = sum / counter; cout << "Average = " << average; return 0; int值; 浮动总和=0.0; int计数器=0; 浮动平均; 库特值; while(值!=0) { 库特值; 计数器++; 总和+=数值; } 平均值=总和/计数器; 不能像这样更改while循环吗 while (value != 0) { counter++; sum += value; cout << "Enter value" << endl; cin >> value; } while(值!=0) { 计数器++; 总和+=数值; 库特值; },c++,C++,不要像这样编写重复的代码 cout值;//2. //计数器++;丢失的 //总和+=数值;丢失的 while(值!=0) { cout值;//2 计数器++; 总和+=数值; } 因为引入bug的几率是原来的两倍。相反: for(;;) // for-ever { cout << "Enter value: "; if(!(cin >> value) || value == 0) break; counter++;
cout值;//2.
//计数器++;丢失的
//总和+=数值;丢失的
while(值!=0)
{
cout值;//2
计数器++;
总和+=数值;
}
因为引入bug的几率是原来的两倍。相反:
for(;;) // for-ever
{
cout << "Enter value: ";
if(!(cin >> value) || value == 0)
break;
counter++;
sum += value;
}
(;;)//永远
{
cout>value)| | value==0)
打破
计数器++;
总和+=数值;
}
B计划(较短):
while(cout>value)&&value!=0) {
计数器++;
总和+=数值;
}
出现此问题的原因是,由于您编写代码的方式,在计算用户输入的所有值的总和时,用户的第一次输入丢失了:
cout << "Enter value " << endl;
cin >> value; // first user input
while (value != 0)
{
cout << "Enter value" << endl;
cin >> value; // This override the first user input
counter++;
sum += value; // The first input never make it to this summation
}
对于这种情况,do-while
loop更合适。你可以做:
int value;
float sum = 0.0f;
int counter = 0;
float average = 0.0f;
do {
cout << "Enter value:" << endl;
cin >> value;
if (value != 0) {
counter++;
sum += value;
}
} while (value != 0);
if (counter > 0) {
average = sum / counter;
}
cout << "Average = " << average << endl;
int值;
浮动总和=0.0f;
int计数器=0;
浮动平均值=0.0f;
做{
库特值;
如果(值!=0){
计数器++;
总和+=数值;
}
}while(值!=0);
如果(计数器>0){
平均值=总和/计数器;
}
不能忽略第一个输入值。
cout << "Enter value " << endl;
cin >> value; // first user input
while (value != 0)
{
cout << "Enter value" << endl;
cin >> value; // This override the first user input
counter++;
sum += value; // The first input never make it to this summation
}
average = sum / counter; //counter is initialized with 0
int value;
float sum = 0.0f;
int counter = 0;
float average = 0.0f;
do {
cout << "Enter value:" << endl;
cin >> value;
if (value != 0) {
counter++;
sum += value;
}
} while (value != 0);
if (counter > 0) {
average = sum / counter;
}
cout << "Average = " << average << endl;