满意答案
chinayaoya
2018.02.24
采纳率:41% 等级:12
已帮助:8177人
/*
矩阵元素间用空格隔开,可以不换行,但是元素个数别错了
M,N表示行列值,自己修改
读取存储文件默认在工程文件夹
*/
#include
#define M 3//矩阵行
#define N 4//矩阵列
int main()
{
void printFiles(float a[M][N]);
float *mattAdd(float a[][N],float b[][N],float c[][N]);
float A[M][N];//矩阵为float
float B[M][N];
float C[M][N];
float *p;//指针读入和接收
int i,j;
FILE *fp;
fp = fopen("inputmatA.txt", "r");
if(fp == NULL)return -1;
p=&A[0][0];
while(fscanf(fp, "%f", p) != EOF)
p++;
fclose(fp);//读完A
fp = fopen("inputmatB.txt", "r");
if(fp == NULL)return -1;
p=&B[0][0];
while(fscanf(fp, "%f", p) != EOF)
p++;
fclose(fp);//读完B
printf("A数组:\n");
printFiles(A);
printf("B数组:\n");
printFiles(B);
printf("C数组:\n");
p=mattAdd(A,B,C);
printFiles(C);
fp = fopen("outputmat.txt", "w+");
for(i=0;i
{
for(j=0;j
{
fprintf(fp,"%.0f\t",*p);//存储
p++;
}
fprintf(fp,"\n");
}
fclose(fp);
}
void printFiles(float a[M][N])//打印
{
int i,j;
for(i=0;i
{
for(j=0;j
printf("%.0f\t",a[i][j]);//默认只打印整数
printf("\n");
}
}
float *mattAdd(float a[M][N],float b[M][N],float c[M][N])
{
int i,j;
float *p;
for(i=0;i
for(j=0;j
c[i][j]=a[i][j]+b[i][j];
p=&c[0][0];
return p;//返回指针
}
00分享举报