#include <stdio.h>
/*this puts the numbers fomr the file into two matrices*/
void readMatrices(FILE*numbers, int array[4][4], int array2[4][4])
{
int i,j,num;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
fscanf(numbers,"%d",&array[i][j]);
}
}
for(i=0;i<=4;i++)
{
for(j=0;j<4;j++)
{
fscanf(numbers,"%d",&array2[i][j]);
}
}
}
void printMatrices(int array[4][4],int array2[4][4]) /* prints out the matrices*/
{
int i,j,num;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",array[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<=4;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",array2[i][j]);
}
printf("\n");
}
printf("\n");
}
/*multiplies the matrices*/
void multiplyMatrices(int array[4][4],int array2[4][4],int result[4][4])
{
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
result[i][j] = (array[i][0]*array2[0][j])+(array[i][1]*array2[1][j])+(array[i][2]*array2[2][j])+(array[i][3]*array2[3][j]);
printf("%d ",result[i][j]);
}
printf("\n");
}
printf("\n");
}
int main()
{
int array[4][4],array2[4][4],results[4][4];
FILE*numbers;
numbers = fopen("numbers.txt", "r");
readMatrices(numbers,array,array2);
while(array[0][0]!=0)
{
printMatrices(array,array2);
multiplyMatrices(array,array2,results);
readMatrices(numbers,array,array2);
}
fclose(numbers);
return 0;
}
Here is the file。这会读取文件,但是按照四肢的随机组而不是按照它应该的顺序,这是一个问题,因为它是错误的,它也不会读取文件中的0
,导致它无限循环。 / p>
答案 0 :(得分:-1)
好吧,我想通了,for循环中的等号会导致一些错误,我真的不知道为什么会这样做但是它们引起了问题,感谢你的建议。