我尝试了解数组如何使用此简单代码工作。 (这是为了做作业)
首先,您应该选择一行(只有2行)
然后您选择一列(共有4个)
我遇到的问题是用户是否选择了未经授权的行卖方列。
想法是先选择一行,然后再选择一列;之后,程序将写出该数组框中的内容。
我认为我做错的是大括号,但我真的不知道如何进行。
我应该补充一点,我的主文件位于另一个文件中,但我想这没关系。
#include "array4.h"
/*That's the content of array4.h
#ifndef ARRAYS_ARRAY4_H
#define ARRAYS_ARRAY4_H
const int rowMAX=1;
const int columnMAX=3;
int array4();
#endif //ARRAYS_ARRAY4_H*/
#include <iostream>
using namespace std;
int array4() {
int row = 0;
int column = 0;
int twodim[2][4] = {{3, 9, 7, 1},
{6, 2, 8, 5}};
cout << "Choose row 0 or 1: ";
if (row <= rowMAX)
cin >> row;
else if (row > rowMAX)
cout << "Chose a lower row number: " << rowMAX;
cin >> row;
cout << "Chose column 0 to 3: ";
if (column <= columnMAX)
cin >> column;
else if (column > columnMAX)
cout << "Chose a lower column number: " << columnMAX;
cin >> column;
cout << twodim[row][column];
return 0;
}
答案 0 :(得分:2)
如果要确保用户输入有效输入,则不适合使用if-else
。为此,最好使用while
循环。
cout << "Choose row 0 or 1: ";
while ( cin >> row ) // Mae sure that input was read successfully.
{
if ( row < 0 || row > rowMAX )
{
cout << row << " is an invalid value for row. Choose 0 or 1: "
}
else
{
// Got valid input. Break out of the loop.
break;
}
}
类似地更新代码以接收来自用户的col
。
答案 1 :(得分:2)
最好与while
循环一起使用,以便连续获取行和列,直到获得良好的行和列!
int array4() {
int row = 0;
int column = 0;
int twodim[2][4] = {{3, 9, 7, 1},
{6, 2, 8, 5}};
//get row
cout << "Choose row 0 or 1: ";
cin >> row;
while (row < 0 || row > rowMAX){
cout << "invalid row!" << endl;
cin >> row;
}
//get column
cout << "Choose col 0 to 3: ";
cin >> column;
while (column < 0 || column > columnMAX){
cout << "invalid column!" << endl;
cin >> column;
}
cout << twodim[row][column];
return 0;
}