简单的 C++ 求和程序
Simple C++ Summing Program
这是我第一次使用 C++,我正在编写一个小程序来计算将在命令提示符中输入的十个数字(双精度数)的总和。
我写了下面的代码,但我不明白为什么它不会产生预期的结果。
int main()
{
double num[10];
double sum = 0;
int i;
int n = 10;
while (scanf_s("%lf", &num) != EOF)
{
for (i = 0; i < n; ++i)
{
scanf_s("%lf", &num);
sum = sum + num[i];
}
}
cout << sum;
system("pause");
return 0;
}
数据输入以控件D结束。
在我看来,它应该 运行 没问题,但事实并非如此。有人可以给我一些解决这个问题的建议吗,我不想被告知正确的方法我宁愿自己学习。
问题是&num是数组的地址。所以你总是在 num[0]
中读取你的值,这意味着 num[i]
在大多数情况下是随机的。
尝试改变你的循环:
for (i = 0; i < n && (cin>>num[i]); ++i)
{
sum = sum + num[i];
}
这是我第一次使用 C++,我正在编写一个小程序来计算将在命令提示符中输入的十个数字(双精度数)的总和。
我写了下面的代码,但我不明白为什么它不会产生预期的结果。
int main()
{
double num[10];
double sum = 0;
int i;
int n = 10;
while (scanf_s("%lf", &num) != EOF)
{
for (i = 0; i < n; ++i)
{
scanf_s("%lf", &num);
sum = sum + num[i];
}
}
cout << sum;
system("pause");
return 0;
}
数据输入以控件D结束。 在我看来,它应该 运行 没问题,但事实并非如此。有人可以给我一些解决这个问题的建议吗,我不想被告知正确的方法我宁愿自己学习。
问题是&num是数组的地址。所以你总是在 num[0]
中读取你的值,这意味着 num[i]
在大多数情况下是随机的。
尝试改变你的循环:
for (i = 0; i < n && (cin>>num[i]); ++i)
{
sum = sum + num[i];
}