c语言求程序需要输入 20 个整型数,将该 20 个数保存于数组内,并将该数组进行升序排序;用 户输入一个整型数字,程序判断该数字是否在该数组内。判断用时需要尽可能短。
时间: 2023-07-15 19:11:19 浏览: 66
C语言程序设计-判断整数x是否是同构数;若是同构数,函数返回1;否则返回0;x的值由主函数从键盘读入,要求不大于100;.c
5星 · 资源好评率100%
以下是C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
void sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (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;
}
}
}
}
int search(int arr[], int n, int x) {
int i;
for (i = 0; i < n; i++) {
if (arr[i] == x) {
return 1;
} else if (arr[i] > x) {
return 0;
}
}
return 0;
}
int main() {
int arr[20], i, x;
printf("请输入20个整数:\n");
for (i = 0; i < 20; i++) {
scanf("%d", &arr[i]);
}
sort(arr, 20);
printf("排序后的数组为:\n");
for (i = 0; i < 20; i++) {
printf("%d ", arr[i]);
}
printf("\n请输入一个整数:\n");
scanf("%d", &x);
if (search(arr, 20, x)) {
printf("%d 在数组中\n", x);
} else {
printf("%d 不在数组中\n", x);
}
return 0;
}
```
首先定义了两个函数,sort()用于排序,search()用于查找数字是否在数组中。
在main()函数中,先输入20个整数,并调用sort()函数进行升序排序,然后输入一个整数x,调用search()函数判断x是否在数组中,最终输出结果。
这里的查找方法是简单的线性查找,由于数组已经升序排序,可以优化为遇到大于x的数就退出循环,提高了查找效率。
阅读全文