【发布时间】:2018-09-23 00:45:48
【问题描述】:
我是编程新手,目前正在阅读“C++ Primer Plus”一书。这是我为某个章节所做的整个练习。这段代码的结果不是我想象的那样(我预计 total 只会将捐赠 [1] 的值添加到捐赠 [9])。
#include <iostream>
using namespace std;
int main()
{ double total;
int bigger=0;
int values=0;
double donation[10];
cout<<"Enter 10 donation values(numbers only). ";
cout<<"Enter first value: ";
while (values<10 && cin>>donation[values] )
{ ++values;
if (values<10)
{
cout<<"Enter value no " <<(values+1)<<" :";
total+=donation[values];
}
}
double average=total/10;
for ( values=0; values<10; values++)
{
if (donation[values]> average)
{
bigger++;
}
}
cout<<"The average of the numbers is: "<<average<<endl;
cout<< bigger <<" numbers larger than average. \n";
cout<<"Bye";
return 0;
}
这是我运行程序时得到的示例:
Enter 10 donation values(numbers only). Enter first value: 1
Enter value no 2 :2
Enter value no 3 :3
Enter value no 4 :4
Enter value no 5 :5
Enter value no 6 :6
Enter value no 7 :7
Enter value no 8 :8
Enter value no 9 :9
Enter value no 10 :10
The average of the numbers is: 6.15278e-311
10 numbers larger than average.
Bye
【问题讨论】:
-
“这段代码的结果不是我所期望的”结果是什么,你期望什么?向我们提供您输入的值以及您期望输出的值与实际发生的情况。
-
total的初始值是多少?使用未初始化的变量是UB,但无论如何你都应该提供minimal reproducible example。 -
创建时将
total设置为0。 -
我编辑了问题并包含了一个示例输出
标签: c++ arrays if-statement while-loop increment