在数组中使用for循环进行用户输入

时间:2018-01-02 04:54:15

标签: c++ arrays for-loop int

尝试让用户使用for循环输入10个值。 “<”在count和Values之间出现错误。为什么呢?

void UserNums() {
    int Values[10];   //creating array to hold values
    int count; //Loop counter
    cout << "Please enter 10 random numbers!" << endl;


    for (count = 0; count < Values; count++) {
        cout << "Number " << (count + 1) << ":" << endl;
        cin >> Values[count];   
    }
}

5 个答案:

答案 0 :(得分:2)

你在代码中犯了一个简单的错误。 变量Values是一个整数数组。  您应该使用任何值而不是值,或者在代码中进行以下更改。

void UserNums() {
    int Values[10];   //creating array to hold values
    int count; //Loop counter
    cout << "Please enter 10 random numbers!" << endl;


    for (count = 0; count < Values.size(); count++) {     
        cout << "Number " << (count + 1) << ":" << endl;
        cin >> Values[count];   
    }
}

以上代码可以正常使用。

您还可以使用以下代码替换10循环数组的循环。

for (count = 0; count < 10; count++) {     
            cout << "Number " << (count + 1) << ":" << endl;
            cin >> Values[count];   
        }

答案 1 :(得分:1)

for (count = 0; count < 10; count++)将无效,因为变量count的类型为int,而Values是一个数组。如果您尝试遍历大小为10的数组中的每个元素,则以下语句应该有效 {{1}}

答案 2 :(得分:0)

for (int count = 0; count < 10; count++) {
    cout << "Number " << (count + 1) << ":" << endl;
    cin >> Values[count];
}

很明显,您正试图遍历阵列中的每个元素。 count < Values将不起作用,因为您正在将int与整个数组进行比较。只需在for循环条件中使用您为数组大小指定的数字。

答案 3 :(得分:0)

如果您的项目支持c ++ 11,我认为以下方法非常好:

array<int,10> Values;
cout << "Please enter 10 random numbers!" << endl;

for(int count = 0; count < Values.size() ;count++){
    cout << "Number " << (count + 1) << ":" <<endl;
    cin >> Values[count];
}

答案 4 :(得分:0)

需要C ++ 11

声明一次所需的值数。

constexpr int numValues = 10;

如果需要固定大小的数组,请使用std :: array

array<int, numValue> Values;   //creating array to hold values
int count = 1; //Loop counter

使用数组的大小以防万一。

cout << "Please enter " << Values.size() << " random numbers!" << endl;

使用新的和改进的for循环。

for (auto & val : Values) {
  cout << "Number << count++ << ": ";
  cin >> val; // real programs usually checks if it is a valid number or a number at all
}