为什么要随机读取文件?

时间:2016-11-14 02:51:58

标签: c

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

1 个答案:

答案 0 :(得分:-1)

好吧,我想通了,for循环中的等号会导致一些错误,我真的不知道为什么会这样做但是它们引起了问题,感谢你的建议。