查找大于某个数的最小数(pta)

调用自定义函数Input从键盘读入10个数到arrA中,再读入一个数num(这些数均≥0,且无重复数),然后调用自定义函数Min在数组arrA中查找大于num的最小数,输出查找结果,没有找到输出“not Find!”

函数接口定义:

 
void Input(int a[],int m);
int Min ( int a[ ], int m, int num);

Input函数 将数据读入数组中;
Min函数 返回数组中的大于num的最小数,没有返回-1

裁判测试程序样例:

 
#include <stdio.h>

void Input(int a[],int m);
int Min(int a[],int m, int num); 

int main(void)
{
    int arrA[10], num, minA;

    Input(arrA,10);
    
    scanf("%d", &num);

    minA = Min(arrA,10,num) ; // 调用函数查找在arrA中大于num的最小数 
    if (-1 == minA)
    {
        printf("not Find!\n");
    }
    else
    {
        printf("%d\n", minA);
    }

    return 0;
}

/* 请在这里填写答案 */

输入样例:

18 299 45 33 66 3 11 57  70 100
40

输出样例:

45

输入样例:

18  99 45 33 66 3 11 57  70 100
110

输出样例:

  1. not Find!

//自己写的,感觉第二个函数有点麻烦了
void Input(int a[],int m){
    int i;
    for(i=0;i<m;i++){
        scanf("%d",&a[i]);
    }
}
int Min ( int a[ ], int m, int num){
    int i,j=0,flag=0,s[m];//定义变量,我通常都是先定义像i,j,这样的,
    //等到后面需要用到新的变量时,直接定义,然后写完再补充
    for(i=0;i<m;i++){//先找到数组中小于num的数,如果有的话
        if(a[i]>num){
            s[j]=a[i];
            j++;
            flag=1;//flag就相当于一个标记,后面方便返回值,真的很好用
        }
    }
    //int min=s[0];
    if(flag){//这句表示数组中含有小于num的数
        int min=s[0];
    for(i=0;i<j;i++){//找最小值
        if(min>s[i])
            min=s[i];
    }
        return min;
    }
    else return -1;
    // if(flag==0)printf("not Find!");
    // else re
}
  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值