要求:将两个文件中的矩阵相加,所得结果放入第三个文件。
程序如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *file1 = fopen("./test1.txt", "r+");
if (NULL == file1)
{
perror("fopen1");
return 1;
}
FILE *file2 = fopen("./text2.txt", "r+");
if (NULL == file2)
{
perror("fopen2");
return 2;
}
int m, n, i, j;
printf("Please enter the nums:");
scanf("%d %d", &m, &n);
int a[m][n], b[m][n], c[m][n];
printf("a juzhen\n");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
fscanf(stdin, "%d", &a[i][j]);
printf("%4d", a[i][j]);
}
printf("\n");
}
printf("b juzhen\n");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
fscanf(stdin, "%d", &b[i][j]);
printf("%4d", b[i][j]);
}
printf("\n");
}
fclose(file1);
fclose(file2);
FILE *file3 = fopen("./text3.txt", "w+");
if (NULL == file3)
{
perror("fopen3");
return 3;
}
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
c[i][j] = a[i][j] + b[i][j];
}
}
printf("c juzhen\n");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
fprintf(stdin, "%4d", c[i][j]);
printf("%4d", c[i][j]);
}
fprintf(file3, "\n");
printf("\n");
}
fclose(file3);
}
运行结果如下:
Please enter the nums:2 3
a juzhen
2 4 6 8 10 12
2 4 6
8 10 12
b juzhen
1 3 5 7 9 11
1 3 5
7 9 11
c juzhen
3 7 11
15 19 23
PS:可通过输入行列数确定矩阵大小