鱼C论坛

 找回密码
 立即注册
查看: 2392|回复: 3

不会做啊,咋办

[复制链接]
发表于 2022-10-13 17:09:08 | 显示全部楼层 |阅读模式
3鱼币
请你查找一个数组中满足值在某一区间范围[a,b]条件的数中的最小数进行输出。
输入格式:
输入数据为多组,每组数据有两行组成,第一行有三个整数,第一个整数表示数组中元素个数n(n<50),第二个
和第三个整数分别为a,b,其中a
输出格式:
输出n个数组元素中满足值在[a,b]范围内的数中的最小值,每组数据的输出占一行,如果没有元素在该区间,则输
出n个数组元素中的最小值。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-13 17:49:04 | 显示全部楼层

【求助帖】请及时确认最佳答案,下次提问时可以得到更多关注,问题可以更快解决
请你查找一个数组中满足值在某一区间范围[a,b]条件的数中的最小数进行输出。
输入格式:
输入数据为多组,每组数据有两行组成,第一行有三个整数,第一个整数表示数组中元素个数n(n<50),第二个
和第三个整数分别为a,b,其中a,b
输出格式:
输出n个数组元素中满足值在[a,b]范围内的数中的最小值,每组数据的输出占一行,如果没有元素在该区间,则输
出n个数组元素中的最小值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 18:27:50 | 显示全部楼层
本帖最后由 jhq999 于 2022-10-13 22:12 编辑

  1. int min=0x7fffffff,min1=0x7fffffff;
  2. for(int i=0;i<n;i+=1)
  3.     {
  4.         min1=min1<num[i]?min1:num[i];
  5.         if(a<num[i]&&b>num[i])
  6.         {
  7.             min=min<num[i]?min:num[i];
  8.         }
  9.     }

  10.     if(min==0x7fffffff)printf("%d",min1);
  11.     else printf("%d",min);
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-14 14:24:28 | 显示全部楼层
本帖最后由 两手空空儿 于 2022-10-14 14:29 编辑
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <limits.h>

  4. int min = INT_MAX;//存放所有数的最小值
  5. int little = INT_MAX;//存放范围内的最小值
  6. int flag = 0;//标记
  7. int a,b;

  8. void Search(int *ptr, int num);

  9. int main(void)
  10. {
  11.     int num,group = 0;   
  12.     int *ptr = NULL;
  13.    
  14.     do{
  15.     printf("您要输入几组数据?(请输入大于0的数)");
  16.     scanf("%d", &group);
  17.     }while(group <= 0);
  18.         
  19.     for(int i = 0; i < group; i++){
  20.         printf("请输入第%d组数据第一行:",i+1);
  21.         scanf("%d %d %d", &num, &a, &b);
  22.         ptr = (int *)calloc(num, sizeof(int));
  23.         if(ptr == NULL){
  24.             printf("内存不足,按任意键退出!");
  25.             system("pause");
  26.             return 0;
  27.         }
  28.         printf("分配内存成功\n请输入第%d组数据的第二行:",i+1);
  29.         for(int j = 0; j < num; j++){
  30.             scanf("%d", ptr+j);
  31.         }      
  32.         
  33.         Search(ptr,num);  
  34.         
  35.         if(ptr != NULL){
  36.             free(ptr);
  37.             ptr = NULL;
  38.         }            
  39.     }
  40.    
  41.     if(flag){
  42.         printf("范围内的最小值是%d\n", little);
  43.     }else{
  44.         printf("范围内没有找到,所有数的最小值是%d", min);
  45.     }
  46.    
  47.     return 0;
  48. }

  49. void Search(int *ptr, int num)
  50. {
  51.     int i;
  52.     for(i = 0; i< num; i++){
  53.         min = min>ptr[i]?ptr[i]:min;
  54.         if(ptr[i] >= a && ptr[i] <=b){
  55.             if(ptr[i] < little){
  56.                 little = ptr[i];
  57.                 flag = 1;
  58.             }
  59.         }        
  60.     }
  61. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 21:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表