寒假打卡1

解题报告1

题目

在这里插入图片描述在这里插入图片描述

解题思路

首先录入数据,然后编写查找函数,并用函数找到目标数赋值给目标变量再输出。

  • 录入数据时由于不确定元素个数故用EOF判断输入是否结束
  • 定义函数时我们需要改变num成为目标数,故用指针指向num以此改变num在主函数中的值。
  • 查找函数中用for循环从0~n依次查找,其中具体使用find函数,该函数未找到目标数时则回返回数组 中最后一个数,故以此判定是否找到目标数并赋值给目标变量num。
  • 最后直接输出num就是我们所要找到的目标数。

代码

#include<cstdio>
#include<algorithm>
#include<cstring>

using namespace std;
const int N=10050;
int nums[N];

int find_nums(int nums[],int i,int* num)
{
    //从小到大排序
    sort(nums,nums+i);
    for(int x=0;x<=i;x++)
    {
        //find找到函数就返回该函数,找不到返回最后一个数字
        //若返回最后一个数字代表找不到该数字,则使num目标数等于该查找不到的数
        
        if(find(nums, nums+i, x) == nums+i)
            *num=x;
    }
    return *num;
}
int main()
{
    int i,n,num=0;
    //设置数组全为0
    memset(nums,0,sizeof(nums));
    while(scanf("%d",&nums[i])!=EOF)
    {
        //读入数据
        i++;
    }
    find_nums(nums,i,&num);
    printf("%d\n",num);
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值