USTC机试——将文件中矩阵转置和另一个矩阵求和后输出到另一个文件
输入文件:2.in
3 2//行列 1 2
4 5
7 8
1 2 4
5 7 8
输出文件:2.out
2 6 11
7 12 16
7 12 16
代码如下:
//将读出的矩阵先转置然后和另一个对应的矩阵相加输出到文件中
#include<stdio.h>
#include<string.h>
#define N 100
int main(){
int a[N][N],b[N][N];
//从文件中读出数据
FILE *fp1,*fp2;
fp1=fopen("2.in","r");
fp2=fopen("2.out","w");
int n,m;//行,列
fscanf(fp1,"%d%d",&n,&m);
for(int i=1;i<=n;i++){//读入a矩阵
for(int j=1;j<=m;j++){
fscanf(fp1,"%d",&a[i][j]);
}
}
for(i=1;i<=m;i++){//读入b矩阵
for(int j=1;j<=n;j++){
fscanf(fp1,"%d",&b[i][j]);
}
}
for(i=1;i<=m;i++){//把矩阵求和后输出到文件中
for(int j=1;j<=n;j++){
fprintf(fp2,"%d ",a[j][i]+b[i][j]);
}
fprintf(fp2,"\n");
}
return 0;
}