用c语言写出输入5个整数,存放在一维数组中,对这5个数进行从高到低 排序并输出。
时间: 2023-04-01 16:04:55 浏览: 274
可以的,以下是代码:
#include <stdio.h>
int main() {
int nums[5];
int i, j, temp;
// 输入5个整数
for (i = ; i < 5; i++) {
printf("请输入第%d个整数:", i+1);
scanf("%d", &nums[i]);
}
// 排序
for (i = ; i < 4; i++) {
for (j = i+1; j < 5; j++) {
if (nums[i] < nums[j]) {
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
// 输出
printf("从高到低排序后的结果为:");
for (i = ; i < 5; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return ;
}
相关问题
从键盘上输入m和n的值,产生一一个m行n列的随机整数(100以内)二维数组a,求出该:二维数组m行的和及n列的和存放到一-维数组x中并显示,再按降序排序x并显示。用c语言简单写
好的,根据你的要求,我可以提供以下C语言代码来解决你的问题:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_VALUE 100
int main() {
int m, n;
printf("请输入m和n的值:");
scanf("%d %d", &m, &n);
// 生成随机整数二维数组a
srand((unsigned)time(NULL));
int **a = (int **)malloc(sizeof(int *) * m);
for (int i = 0; i < m; i++) {
a[i] = (int *)malloc(sizeof(int) * n);
for (int j = 0; j < n; j++) {
a[i][j] = rand() % MAX_VALUE;
}
}
// 计算m行和n列的和
int *x = (int *)malloc(sizeof(int) * (m + n));
for (int i = 0; i < m + n; i++) {
x[i] = 0;
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
x[i] += a[i][j];
x[m + j] += a[i][j];
}
}
// 显示m行和n列的和
printf("m行的和:");
for (int i = 0; i < m; i++) {
printf("%d ", x[i]);
}
printf("\n");
printf("n列的和:");
for (int i = m; i < m + n; i++) {
printf("%d ", x[i]);
}
printf("\n");
// 按降序排序x并显示
for (int i = 0; i < m + n; i++) {
for (int 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 (int i = 0; i < m + n; i++) {
printf("%d ", x[i]);
}
printf("\n");
// 释放内存
for (int i = 0; i < m; i++) {
free(a[i]);
}
free(a);
free(x);
return 0;
}
```
你可以将上述代码保存为一个 `.c` 文件,然后使用 C 语言编译器进行编译。注意,本题需要动态分配二维数组 `a` 和一维数组 `x`,因此需要使用 `malloc` 函数进行内存分配。编译成功后,会生成一个可执行文件,你可以运行它来查看结果。
希望这个C语言代码能够帮到你!
阅读全文