Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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++ - Fatal编程技术网

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;