|
发表于 2022-10-14 14:24:28
|
显示全部楼层
本帖最后由 两手空空儿 于 2022-10-14 14:29 编辑
- #include <stdio.h>
- #include <stdlib.h>
- #include <limits.h>
- int min = INT_MAX;//存放所有数的最小值
- int little = INT_MAX;//存放范围内的最小值
- int flag = 0;//标记
- int a,b;
- void Search(int *ptr, int num);
- int main(void)
- {
- int num,group = 0;
- int *ptr = NULL;
-
- do{
- printf("您要输入几组数据?(请输入大于0的数)");
- scanf("%d", &group);
- }while(group <= 0);
-
- for(int i = 0; i < group; i++){
- printf("请输入第%d组数据第一行:",i+1);
- scanf("%d %d %d", &num, &a, &b);
- ptr = (int *)calloc(num, sizeof(int));
- if(ptr == NULL){
- printf("内存不足,按任意键退出!");
- system("pause");
- return 0;
- }
- printf("分配内存成功\n请输入第%d组数据的第二行:",i+1);
- for(int j = 0; j < num; j++){
- scanf("%d", ptr+j);
- }
-
- Search(ptr,num);
-
- if(ptr != NULL){
- free(ptr);
- ptr = NULL;
- }
- }
-
- if(flag){
- printf("范围内的最小值是%d\n", little);
- }else{
- printf("范围内没有找到,所有数的最小值是%d", min);
- }
-
- return 0;
- }
- void Search(int *ptr, int num)
- {
- int i;
- for(i = 0; i< num; i++){
- min = min>ptr[i]?ptr[i]:min;
- if(ptr[i] >= a && ptr[i] <=b){
- if(ptr[i] < little){
- little = ptr[i];
- flag = 1;
- }
- }
- }
- }
复制代码 |
|