Фактически, «недействительные операнды в двоичные (имеют« int »и« int * »)», вызванные выражением, temp
где используется только один индекс, поэтому тип метода пытается быть квадратным. Второй индекс должен иметь тип .temp = square[row]*square[row]; printf("%5d %15d ", square[row][temp]);
int*
int
Но ...
Почему вы используете temp
индекс?
Вместо
square[row][0] = square[row][1]*square[row][1];
printf("%5d %15d
", square[row][1], square[row][0]);
должно быть
square[row][0]
И обратите внимание, что в моем примере square[row][0]
используется (с [0]), но на самом деле я предполагаю, что вы намеревались использовать square[row][1]
для VALUE и 0
для SQUARED, но вы забыли о том, что с начала индексирования C начинается 0
. Поэтому, чтобы последняя часть вашего кода работала правильно, измените «входную часть» и доведите вывод заголовка до таблицы непосредственно перед «выходной частью»,
#include <stdio.h>
#define ROWS 5 //number of defined rows
#define COLS 2 //number of defined columns
int main(void)
{
int square[ROWS][COLS];
int row, col, temp;
// "input part"
for(row=0; row<ROWS; row++)
{
// TODO: type this again after reading my aswer above
}
// "output part"
printf("VALUE SQUARED
");
for(row=0; row<ROWS; row++)
{
for(col=0; col<COLS; col++)
printf("%10d", square[row][col]);
printf("
");
}
return 0;
}