开头C++:使用 if else,n--, 数字

Beginning C++: using if else, n--, number

本文关键字:n-- 数字 else if C++ 使用 开头      更新时间:2023-10-16

我正在努力让这个程序工作。有人可以看看有什么问题吗?(编译器说sum_positive不是以这种方式定义的。另外,我已经搜索了这个问题并在这里找到了答案,但我没有以这种方式看待问题,并希望在提交作业时避免抄袭。谢谢!

    编写一个程序,该程序读取十个整数,并输出所有大于零的数字的总和
  1. ,所有小于零的数字的总和(将是负数或零(,以及所有数字的总和,无论是正数、负数还是零。用户每个数字只输入一次,用户可以按任意顺序输入它们。程序不应要求用户分别输入正数和负数。

程序:

#include <iostream>
using namespace std;
int main()
{
int number, n = 10, sum_positive = 0, sum_negative = 0, sum = 0;
    int count = 0, positive_count = 0, negative_count = 0;
    cout << "Please enter in 10 whole numbers, one at a time." << endl;
    do
    {
        cout << "Please enter another number." << endl;
        cin >> number;
        n--;
    }
    while (n > 0);
    if (number >= 0)
    {
        sum_positive += number;
        //positive_count++; count++;
    }
    else
    {
        sum_negative += number;
        //negative_count++; count++;
    }

    sum = sum_positive + sum_negative;
    cout << sum_postive << endl;
    cout << sum_negative << endl;
    cout << sum << endl;
return 0;
}
  1. 你的行sum_positive代码中有一个拼写错误(cout <<sum_postive <<endl;( - 你写了sum_postive但你声明sum_positive。

  2. 您正在运行一个循环并获取相同变量号的输入,因此它将覆盖所有输入,并仅存储用户输入的变量号中的最后一个值。因此,您的总和将始终等于用户输入的最后一个值。

为此,您需要使用数组。 例:

int number[10], n=10, sum_positive=0;
do{
    cout<<"e`enter code here`nter number:";
    cin>>number[n];
    n--;
}while(n>0);

现在对于总和,您还需要使用循环。

如果您不了解数组,请研究如何使用它。