for循环中有多个输入

今美

我必须用c ++编写一个程序,其中用户输入数字N,然后在第二行中,他输入的数字与N一样多,不再多。输出应该是输入数字中所有正数之和。我必须使用for循环。此外,到目前为止,仅在声明中,我们还没有涉及太多内容。

我尝试过的代码仅给出正数之和,但是我无法使程序使用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;
}
泰德·林格莫

问题在于您使用相同的变量(i)进行循环和输入。

for (int i=1; i<=n; i++)
{
        cin>>i;

无论输入什么,都会cin>>i破坏程序的逻辑。添加一个单独的输入变量,并保持i循环。

例:

#include <iostream>

int main() {
    int n, sum = 0;
    std::cout << "How many numbers do you want to enter? \n";
    std::cin >> n;
    std::cout << std::endl;

    std::cout << "Enter numbers: \n";
    for(int i = 1; i <= n; i++) {
        std::cout << i << ": ";

        int input;
        if(std::cin >> input) {
            if(input > 0) {
                sum = sum + input;
            }
            std::cout << sum << std::endl;
        } else
            break; // user failed to enter a number
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章