c语言编程从键盘上输入m和n的值,产生一个m行n列的随机整数(100以内)二维数组a,按m行n列的形式显示随机产生的数组并求出该二维数组m行的和及n列的和存放到一维数组x中并显示,再按降序排序x并显示。
时间: 2024-02-09 18:09:27 浏览: 72
好的,以下是C语言的程序实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int m, n, i, j;
printf("请输入m和n的值:");
scanf("%d%d", &m, &n);
int a[m][n];
srand(time(NULL));
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
a[i][j] = rand() % 100;
}
}
printf("随机产生的数组:\n");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
printf("%3d ", a[i][j]);
}
printf("\n");
}
int x[m + n];
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("行和:");
for (i = 0; i < m; i++) {
printf("%d ", x[i]);
}
printf("\n列和:");
for (j = 0; j < n; j++) {
printf("%d ", x[m + j]);
}
printf("\n");
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("降序排列后:");
for (i = 0; i < m + n; i++) {
printf("%d ", x[i]);
}
printf("\n");
return 0;
}
```
该程序与上一个程序的区别在于,首先按照m行n列的形式显示随机产生的数组,然后才求出该二维数组m行的和及n列的和存放到一维数组x中,并显示。其他部分与上一个程序相同。
希望这个程序能够解决你的问题,如果你还有其他问题,可以继续提出。
阅读全文