【发布时间】:2019-12-13 19:13:40
【问题描述】:
我必须用 C++ 编写一个程序,用户输入一个数字 N,然后在第二行输入与 N 一样多的数字,仅此而已。输出应该是输入数字中所有正数的总和。 我必须使用 for 循环。到目前为止,我们还没有涉及太多,只有 if 语句。
我尝试的代码只给出了正数的总和,但我不能让程序使用 N 个输入并停止。它要么只计算一个,要么只要用户输入数字就继续。
#include <iostream>
using namespace std;
int main ()
{
int n, sum=0;
cin>> n;
cout<<endl;
cout<<"Enter numbers"<<endl;
for (int i=1; i<=n; i++)
{
cin>>i;
if(i>0)
{sum=sum+i;
}
cout<<sum<<endl;
}
return 0;
}
【问题讨论】:
-
你为什么使用同一个变量,作为
cin>>i;中的循环计数器?为什么不使用不同的变量来读取值? -
代码在这里工作得很好:wandbox.org/permlink/naZfBzsuB3Hj3itO
-
不相关:更喜欢
for (int i=0; i<n; i++)而不是for (int i=1; i<=n; i++),因为 C++ 中的所有内容都从 0 开始并运行到 n-1。强制 origin 1 索引会导致很多问题。