c语言编程题:用冒泡排序法对输入的20个数进行降序排序并存入数组中,然后输入一个数,查找该数是否在数组中存在,若存在,打印出该数在数组中对应的下标值。
时间: 2025-02-23 21:31:38 浏览: 63
在C语言中,你可以使用冒泡排序算法对一组数字进行降序排列,然后遍历数组来检查特定数值是否存在。以下是相应的步骤和代码示例:
首先,我们编写一个函数来进行冒泡排序:
```c
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
// 降序排序,所以这里是大于号
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
然后,在主函数中获取用户输入,进行排序,并查找指定数值:
```c
#include <stdio.h>
int searchArray(int arr[], int size, int target) {
for (int i = 0; i < size; i++) {
if (arr[i] == target) {
return i; // 返回目标值的下标
}
}
return -1; // 没有找到目标值,返回-1表示不存在
}
int main() {
int arr[20], size = 0;
// 输入20个数并保存
printf("Enter 20 numbers:\n");
for (int i = 0; i < 20; i++) {
scanf("%d", &arr[size]);
size++;
}
// 对数组进行降序排序
bubbleSort(arr, size);
// 输入查询值
int target;
printf("Enter a number to search for: ");
scanf("%d", &target);
// 查找并打印结果
int index = searchArray(arr, size, target);
if (index != -1) {
printf("Number found at index: %d\n", index);
} else {
printf("Number not found.\n");
}
return 0;
}
```
当运行此程序时,它会让用户输入20个数字,然后对这些数字进行降序排序。接着,用户可以输入一个数,程序会在排序后的数组中查找该数,如果找到则打印其下标,找不到则提示未找到。
阅读全文
相关推荐


















