【问题标题】:Write a program using an array that ask user to input 10 numbers [closed]使用数组编写程序,要求用户输入 10 个数字 [关闭]
【发布时间】:2016-03-30 03:46:49
【问题描述】:

练习文字:

使用数组编写一个程序,要求用户输入 10 个数字,然后计算这些数字的平均值并找出大于或等于平均值​​的总数。例如,您输入了 10 个数字:1,2,3,4,5,-1,-2,-3,-4,-5。平均值为 0。大于或等于平均值​​的总数为 5,即 1、2、3、4、5。

你必须使用循环来解决这个问题。

到目前为止我的代码:

using namespace std;
#include <iostream>

int main()
{
    double nums[10];
    double sum = 10;
    double averageNums;
    int numsGreaterThan = 0;
    for ( int i = 0; i < 10; i++ )
    {
        cout << "Enter number " << i +1 << ": ";
        cin >> nums;
        sum = sum + nums;
    }
    averageNums = sum / 10;

    for ( int j = 0; j < 10; j++ )
    {
        if ( nums[j] >= averageNums )
            numsGreaterThan++; 
    }
    cout << numsGreaterThan << " numbers are greater than the average.";

    system ("pause");
}

我正在努力解决的错误:

  1. 错误 1 ​​错误 C2679:二进制“>>”:未找到采用“双 [10]”类型的右侧操作数的运算符(或没有可接受的转换)

  2. 错误 2 错误 C2111: '+' : 指针加法需要整数操作数

  3. IntelliSense:没有运算符“>>”与这些操作数匹配 操作数类型为:std::istream >> double [10]

  4. IntelliSense:表达式必须具有算术或非范围枚举类型

【问题讨论】:

  • 在错误信息中加上行号会更好。
  • 你真的不应该把using namespace std放在包含前面

标签: c++ arrays loops std average


【解决方案1】:
cin >> nums;

应该是

cin >> nums[i];

所以

sum = sum + nums;

应该是

sum = sum + nums[i];

因为nums 是一个数组,它应该被索引。您正在尝试使用double 将数组传递给cin+ 运算符。因此,您遇到了错误。

【讨论】:

  • 哇,只需两个字母就这么简单,非常感谢
【解决方案2】:

你需要索引数组:

cin >> nums[i];
sum = sum + nums[i];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 2023-02-10
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多