如何更改用户输入的2d C ++数组的行和列的值?

时间:2016-07-18 01:00:03

标签: c++ arrays input

在我的程序中,我正在处理一个函数,该函数获取用户输入的行,列和新值,它将替换设置为常量的相等维度的2d数组的相同索引中的旧值int 5.(它是一个正方形)这是我试图做的事情:

cout << "Input the row, the column, and new value: " << endl;
    cin >> changeR >> changeC >> newval;

    Sqarr[changeR, changeC] = newval;

我收到一条错误消息,说我的表达式必须是可修改的值。

我的策略错了吗?我不能这样做二维阵列吗?

2 个答案:

答案 0 :(得分:2)

您只是使用了错误的语法。虽然你所做的对其他语言有用,但在C / C ++中它有不同的含义:

Sqarr[changeR, changeC] = newval;

不会像其他语言那样做。你想要的是:

Sqarr[changeR][changeC] = newval;

top语句使用C的“逗号”运算符,该运算符计算第一个值(changeR),然后计算第二个值(changeC)并简单地返回第二个值。这只会将Sqarr的行编入索引,而您无法将newval分配给。{/ p>

最下面一行说“获取changeRSqarr,然后将changeC列编入索引。”

答案 1 :(得分:0)

语法不正确。 必须是:

array[row][col] = value;

我会检查数组索引。

cin >> row >> col >> new_value; 
if((row > 0 && row < MAX_ROWS_COUNT) && (col > 0 && col < MAX_COLS_COUNT)) 
{
    array[row][col] = new_value; 
}