c语言输入一个[10,100]上的整数,在序列{67,32,9,87,75,90,16,53,41,24}中搜索出不大于n的最大整数。如输入数据无效输出“ERROR”
时间: 2024-05-04 10:17:11 浏览: 51
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
好的,我知道了。这道题可以使用线性查找算法来解决。具体实现方法如下:
1. 首先判断输入的数据是否在[10,100]区间内,如果不是,则输出“ERROR”。
2. 如果输入的数据有效,则遍历序列{67,32,9,87,75,90,16,53,41,24},找到不大于输入数据n的最大整数。
3. 遍历过程中,如果找到比n小的数,则将该数与当前最大数进行比较,如果该数大于当前最大数,则更新最大数。
4. 遍历结束后,输出最大数即可。
以下是C语言的实现代码:
```c
#include <stdio.h>
int main()
{
int n = 0, max = 0;
int arr[10] = {67, 32, 9, 87, 75, 90, 16, 53, 41, 24};
printf("请输入一个[10,100]之间的整数:");
scanf("%d", &n);
if (n < 10 || n > 100)
{
printf("ERROR\n");
return 0;
}
for (int i = 0; i < 10; i++)
{
if (arr[i] <= n && arr[i] > max)
{
max = arr[i];
}
}
printf("不大于%d的最大整数为%d\n", n, max);
return 0;
}
```
注意,上述代码中使用了一个数组来存储序列中的整数,这样可以方便地进行遍历和比较。
阅读全文