编写程序,在主函数中完成如下功能:从键盘上输入矩阵行数和列数,用随机函数产生两个矩阵的元素(取值范围为[0~100)的整数),分别存放于a和b两个二维数组中,接着将a和b相加和相减,并将结果分别存入c和d矩阵中,最后输出a、b、c、d矩阵。
时间: 2024-01-24 17:17:21 浏览: 67
在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出矩阵第一行与第三行元素之和,并在fun()函数中输出
5星 · 资源好评率100%
以下是您需要的程序代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_SIZE 100
void addMatrix(int a[][MAX_SIZE], int b[][MAX_SIZE], int c[][MAX_SIZE], int n, int m)
{
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
c[i][j] = a[i][j] + b[i][j];
}
}
}
void subMatrix(int a[][MAX_SIZE], int b[][MAX_SIZE], int d[][MAX_SIZE], int n, int m)
{
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
d[i][j] = a[i][j] - b[i][j];
}
}
}
void printMatrix(int matrix[][MAX_SIZE], int n, int m)
{
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main()
{
int n, m;
printf("请输入矩阵的行数和列数:\n");
scanf("%d%d", &n, &m);
srand((unsigned)time(NULL)); // 使用时间作为随机种子
int a[MAX_SIZE][MAX_SIZE], b[MAX_SIZE][MAX_SIZE];
int c[MAX_SIZE][MAX_SIZE], d[MAX_SIZE][MAX_SIZE];
// 产生随机数并初始化矩阵 a 和 b
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a[i][j] = rand() % 100;
b[i][j] = rand() % 100;
}
}
// 计算矩阵 c 和 d
addMatrix(a, b, c, n, m);
subMatrix(a, b, d, n, m);
// 输出矩阵 a、b、c、d
printf("矩阵 a:\n");
printMatrix(a, n, m);
printf("矩阵 b:\n");
printMatrix(b, n, m);
printf("矩阵 c = a + b:\n");
printMatrix(c, n, m);
printf("矩阵 d = a - b:\n");
printMatrix(d, n, m);
return 0;
}
```
程序运行时会要求输入矩阵的行数和列数,然后产生两个随机矩阵并计算它们的和与差,并输出四个矩阵。
阅读全文