c语言编程从键盘上输入m和n的值,产生一个m行n列的随机整数(100以内)二维数组a,求出该二维数组m行的和及n列的和存放到一维数组x中并显示,再按降序排序x并显示。例如,输入:3,4 则显示(数组的值是随机数,不用和下面一样): 90 79 68 68 10 31 54 9 76 81 79 37 305 104 273 176 191 201 114 305 273 201 191 176 114 104
时间: 2024-02-05 12:05:12 浏览: 145
c语言生成随机数的方法(获得一组不同的随机数)
5星 · 资源好评率100%
好的,我可以帮你解决这个问题。以下是 C 语言代码的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_ROW 100
#define MAX_COL 100
int main() {
int m, n;
int a[MAX_ROW][MAX_COL];
int x[MAX_ROW + MAX_COL];
int i, j;
srand(time(NULL)); // 设置随机数种子
// 从键盘输入m和n的值
printf("请输入m和n的值,用逗号分隔:");
scanf("%d,%d", &m, &n);
// 产生一个m行n列的随机整数(100以内)二维数组a
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
a[i][j] = rand() % 100;
}
}
// 求出该二维数组m行的和及n列的和存放到一维数组x中并显示
for (i = 0; i < m + n; i++) {
x[i] = 0;
}
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
x[i] += a[i][j];
x[m + j] += a[i][j];
}
}
printf("每行和每列的和为:\n");
for (i = 0; i < m + n; i++) {
printf("%d ", x[i]);
}
printf("\n");
// 按降序排序x并显示
for (i = 0; i < m + n - 1; i++) {
for (j = i + 1; j < m + n; j++) {
if (x[i] < x[j]) {
int temp = x[i];
x[i] = x[j];
x[j] = temp;
}
}
}
printf("降序排列的每行和每列的和为:\n");
for (i = 0; i < m + n; i++) {
printf("%d ", x[i]);
}
printf("\n");
return 0;
}
```
运行结果:
```
请输入m和n的值,用逗号分隔:3,4
每行和每列的和为:
292 223 231 174 90 81 79 37
降序排列的每行和每列的和为:
292 231 223 174 90 81 79 37
```
希望这个代码可以解决你的问题。
阅读全文