我想打印矩阵,但我不知道如何。
#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);
}
答案 0 :(得分: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");
}
答案 1 :(得分:0)
用于阅读文件并将其放入矩阵并一次性打印:
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");
}