C语言之文件操作05——矩阵(数据)的读取方法
来源:互联网 发布:房屋三维设计效果软件 编辑:程序博客网 时间:2024/06/01 07:40
//数据读取
/*
===============================================================
题目:从test.txt中读出矩阵A,B,并计算它们的乘积,输出到屏幕!
===============================================================
*/
#include<stdio.h>
#define M 3
#define N 5
void main()
{
FILE *fp;
int a[M][N],b[N][M],c[M][M];
int i,j,k;
fp=fopen("D:\\test.txt","r");
if(fp==NULL)
printf("文件打开失败!\n");
else
{
//读入A,就像正常写入一样,把scanf换成fscanf
printf("读取矩阵A:\n");
for(i=0;i<M;i++)
for(j=0;j<N;j++)
fscanf(fp,"%d",&a[i][j]);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%3d ",a[i][j]);
printf("\n");
}
//读入B,就像正常写入一样,把scanf换成fscanf
printf("读取矩阵B:\n");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
fscanf(fp,"%d",&b[i][j]);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%3d ",b[i][j]);
printf("\n");
}
fclose(fp);
//二维矩阵的乘法
printf("矩阵A与B乘积:\n");
for(i=0;i<M;i++)
for(j=0;j<M;j++)
{
c[i][j]=0;
for(k=0;k<N;k++)
c[i][j]+=a[i][j]*b[j][i];
}
//输出
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
printf("%5d ",c[i][j]);
printf("\n");
}
}
}
/*
========================================================================
评:
/*
===============================================================
题目:从test.txt中读出矩阵A,B,并计算它们的乘积,输出到屏幕!
===============================================================
*/
#include<stdio.h>
#define M 3
#define N 5
void main()
{
FILE *fp;
int a[M][N],b[N][M],c[M][M];
int i,j,k;
fp=fopen("D:\\test.txt","r");
if(fp==NULL)
printf("文件打开失败!\n");
else
{
//读入A,就像正常写入一样,把scanf换成fscanf
printf("读取矩阵A:\n");
for(i=0;i<M;i++)
for(j=0;j<N;j++)
fscanf(fp,"%d",&a[i][j]);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%3d ",a[i][j]);
printf("\n");
}
//读入B,就像正常写入一样,把scanf换成fscanf
printf("读取矩阵B:\n");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
fscanf(fp,"%d",&b[i][j]);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%3d ",b[i][j]);
printf("\n");
}
fclose(fp);
//二维矩阵的乘法
printf("矩阵A与B乘积:\n");
for(i=0;i<M;i++)
for(j=0;j<M;j++)
{
c[i][j]=0;
for(k=0;k<N;k++)
c[i][j]+=a[i][j]*b[j][i];
}
//输出
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
printf("%5d ",c[i][j]);
printf("\n");
}
}
}
/*
========================================================================
评:
二维数组的读取实际上还是一个一个的取出数字,即a[i][j];fscanf(fp,"%d",&a[i][j]);另外要注意读
出时用“r”!保存数据时尽可能不要参杂其他字符,一组数据用一个文件单独保存,以保证数据的可
读性。
========================================================================*/
1 0
- C语言之文件操作05——矩阵(数据)的读取方法
- C语言之文件操作07——读取文件数据并计算均值方差标准差
- C语言的文件读取操作总结
- C语言文件读写操作,从文件读取数据
- 孙其功陪你学之——C语言读取kinect获得的深度数据.pgm文件
- 读取高光谱数据头文件—C语言
- C语言简单的文件打开/读取数据/写回文件操作
- C语言——文件内容的读取与替换操作
- C语言文件操作之--读取文件最后一行(通过fgets完成)
- C语言之文件操作04——输入矩阵a,b,求乘积c,并打印a,b,c到文件
- C语言之文件操作06——写数据到文本文件遇0停止
- C语言的文件读取与写入操作
- C语言中打开文件读取,写入的操作
- C语言/C++文件的读取与写入操作
- C语言复习之文件的操作
- c语言读取 unicode文件操作(去掉2个文件重复的部分)
- c语言实现读取ini文件操作
- C语言读取CSV文件的方法1
- 给中国学生的第四封信:大学四年应是这样度过(下)
- 学习书籍
- Linux下更改系统时区及时间
- hdu 5382 GCD?LCM!
- HDOJ 5399.Too Simple(2015多校-9的1004)
- C语言之文件操作05——矩阵(数据)的读取方法
- 首次开机时的默认动态壁纸
- 给中国学生的第五封信:你有选择的权利(上)
- iOS安全系列之一:HTTPS
- 归档KeyArchive
- [转]让uboot的tftp支持上传功能
- LVS快速搭建教程
- Linux内核配置(转)
- 给中国学生的第五封信:你有选择的权利(下)