从C ++开始:使用if else,n--,number

时间:2017-07-01 01:58:38

标签: c++ if-statement sum

我正在努力让这个计划发挥作用。有人可以看一下看看有什么问题吗? (编译器说sum_positive没有以这种方式定义。)另外,我已经搜索了这个问题,并在这里找到了答案,但我没有看到问题,并且当我上交作业时想要避免抄袭。谢谢!

  1. 编写一个程序,读取十个整数并输出所有大于零的数字之和,所有数字之和小于零(将为负数或零),以及所有数字的总和数字,无论是正数,负数还是零。用户每次只输入十个数字,用户可以按任何顺序输入。您的程序不应要求用户单独输入正数和负数。
  2. 程序:

    #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 个答案:

答案 0 :(得分:0)

  1. 你的sum_positive代码中存在拼写错误(cout&lt;&lt; sum_postive&lt;&lt; endl;) - 你写了sum_postive但是你声明了sum_positive。

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

  3. 为此你需要使用一个数组。 例如:

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

    现在总和也需要使用循环。

    如果您不了解阵列,请研究如何使用它。