Ошибка «Недопустимые операнды в двоичный файл» при попытке вычислить квадрат элементов в массиве

#arrays #c

#массивы #c

Вопрос:

предполагается, что этот код считывает текстовый файл, содержащий целые числа, который затем находит квадраты этих чисел после помещения их в массив. После этого предполагается распечатать результаты в новый текстовый файл «result.txt «, но я продолжаю получать сообщение об ошибке «недопустимые операнды в двоичном формате * (имеют ‘int *’ и ‘int *’)» в этой строке: square [x] = square [x] * square [x];

 #include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(){

    int square[100][2];
    int x;
    int i;

    FILE* input=fopen("in.csv","r");
    FILE * f=fopen("result.txt","wb");
    system("cls");

    for(x=0;x<100;x  )
    {
        fscanf(input,"%d",amp;square[x][0]);
    }

    fclose(input);

    for(x=0;x<100;x  )
    {
        square[x] = square[x] * square[x]; //this line produces the error
    }

    for(i=0;i<100;i  )
    {
        fprintf(f,"%d -> %d || ",square[i][0],square[i][1]);
    }

    fclose(f);
    getchar();
}
 

Я использую Eclipse IDE и MinGW-w64
Я пытался найти решения в Интернете, но застрял, любая помощь или ответы будут оценены по достоинству, спасибо!

Ответ №1:

square[x] выдает массив из двух элементов. Вы должны ссылаться на [0] [1] элементы и, как вы делаете в остальной части вашего кода.

 square[x][1] = square[x][0] * square[x][0];