#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];