【问题标题】:Reading a 3x3 Matrix from a file an then displaying it in C从文件中读取 3x3 矩阵,然后在 C 中显示
【发布时间】:2013-11-01 23:56:53
【问题描述】:

我想打印矩阵,但我不知道怎么做。

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

int main(int argc, char* argv[])
{
FILE       *input;
int        i, j;  
float      fullmatrix[3][3];
const char inp_fn[]="matrix.dat";

/*Open File*/
input = fopen(inp_fn, "r");

if( (input != (FILE*) NULL) )
{
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            fullmatrix[i][j] = input;
        }
        fscanf(input, "%f");

    }
    fclose(input);
    printf("%f %f %f\n %f %f %f\n %f %f %f\n", &matrix[i][j]);
}
else
    printf("Could not open file!\n");

return(0);
}

【问题讨论】:

    标签: c file-io matrix printf scanf


    【解决方案1】:
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            fullmatrix[i][j] = input;
        }
        fscanf(input, "%f");
    
    }
    

    应该是:

    for(i=0; i<3; i++) {
        for(j=0; j<3; j++) {
            fscanf(input, "%f", &fullmatrix[i][j]);
        }
    }
    

    这条线也不会像你想的那样:

    printf("%f %f %f\n %f %f %f\n %f %f %f\n", &matrix[i][j]);
    

    您需要再次使用循环自己打印它:

    for(i=0; i<3; i++) {
        for(j=0; j<3; j++) {
            printf("%f ", fullmatrix[i][j]);
        }
        printf("\n");
    }
    

    【讨论】:

    • 我就是这个意思! :)
    • @user1561072:查看我的编辑。你应该花更多的时间阅读一些好书;)
    • @user1561072 您可以一口气阅读和打印 .. 而不是两个循环 .. 看我的回答
    • @user1561072:你不需要,我们都开始了 :)
    【解决方案2】:

    用于读取文件并将其放入矩阵并一次性打印

    for(i=0; i<3; i++) {
        for(j=0; j<3; j++) {
            fscanf(input, "%f", &fullmatrix[i][j]); // If you just want to print the matrix separately .. remove this line
    
            printf("%f ",matrix[i][j]);
        }
        printf("\n");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      • 1970-01-01
      相关资源
      最近更新 更多