用C语言输入10个数,对10个数进行降序排列
时间: 2024-03-26 17:39:10 浏览: 127
以下是用C语言实现对10个数进行降序排列的示例代码:
```c
#include <stdio.h>
int main() {
int arr[10], i, j, temp;
// 读入10个数
printf("请输入10个数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 冒泡排序
for (i = 0; i < 9; i++) {
for (j = 0; j < 9 - i; j++) {
if (arr[j] < arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// 输出排序结果
printf("降序排列后的结果为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
该程序中,我们先读入10个数,然后使用冒泡排序对其进行降序排列,最后输出排序结果。
相关问题
任意输入两个整数,降序排列c语言
在C语言中,你可以使用数组和循环来实现任意两个整数的降序排列。这里有一个简单的示例代码,假设你有两个变量`num1`和`num2`,你想将它们按降序排列:
```c
#include <stdio.h>
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int num1, num2;
// 输入两个整数
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
// 检查是否需要排序
if (num1 > num2) {
// 如果num1较大,直接返回
printf("降序排列后的数字:%d %d\n", num1, num2);
} else {
// 否则交换两个数并打印
swap(&num1, &num2);
printf("降序排列后的数字:%d %d\n", num1, num2);
}
return 0;
}
```
在这个代码中,我们首先检查`num1`是否大于`num2`。如果已然是降序,则无需交换;如果不是,我们通过`swap`函数将较小的数赋值给较大的位置,达到降序排列。
用C语言编写一个程序输入两个包含10个元素的数组,先将第一个数组采用冒泡排序法进行降序排列,第二个数组采用选择排序进行降序排列,然后将这两个数组合并成一个降序数组
好的,我能够理解您的问题。以下是C语言程序的代码:
```
#include <stdio.h>
// 冒泡排序函数
void bubbleSort(int arr[], int n) {
int temp;
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] < arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
// 选择排序函数
void selectionSort(int arr[], int n) {
int max_index, temp;
for (int i = 0; i < n-1; i++) {
max_index = i;
for (int j = i+1; j < n; j++) {
if (arr[j] > arr[max_index]) {
max_index = j;
}
}
temp = arr[i];
arr[i] = arr[max_index];
arr[max_index] = temp;
}
}
// 合并两个数组函数
void mergeArrays(int arr1[], int arr2[], int n, int merged[]) {
int i = 0, j = 0, k = 0;
while (i < n && j < n) {
if (arr1[i] >= arr2[j]) {
merged[k++] = arr1[i++];
} else {
merged[k++] = arr2[j++];
}
}
while (i < n) {
merged[k++] = arr1[i++];
}
while (j < n) {
merged[k++] = arr2[j++];
}
}
int main() {
int arr1[10], arr2[10], merged[20];
int n = 10;
// 接收第一个数组的输入
for (int i = 0; i < n; i++) {
printf("请输入第一个数组的第%d个元素: ", i+1);
scanf("%d", &arr1[i]);
}
// 接收第二个数组的输入
for (int i = 0; i < n; i++) {
printf("请输入第二个数组的第%d个元素: ", i+1);
scanf("%d", &arr2[i]);
}
// 对第一个数组进行冒泡排序
bubbleSort(arr1, n);
// 对第二个数组进行选择排序
selectionSort(arr2, n);
// 合并两个数组
mergeArrays(arr1, arr2, n, merged);
// 输出合并后的数组
printf("合并后的数组为: ");
for (int i = 0; i < 2*n; i++) {
printf("%d ", merged[i]);
}
printf("\n");
return 0;
}
```
注意:这是一个可以编译和运行的程序。请在本地计算机上编译和运行该程序,而不要直接尝试复制代码并在聊天窗口中运行它。
阅读全文