「这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战」
💛作者主页:静Yu
🧡简介:CSDN全栈优质创作者、华为云享专家、前端知识交流社区创建者
💛社区地址:bbs.csdn.net/forums/Jing…
第十三届蓝桥杯大赛个人赛省赛比赛将于2022年4月9日(星期六)举办,趁现在寒假的时间抓紧时间备战一下。因为博主本人报名是C/C++组,所以更新所有内容都是C/C++相关知识。题目全部都是蓝桥杯官网题库真题。今天是备战刷题的第七天。 题目: 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。 输入格式: 第一行包含一个整数n。 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。
样例输入:
6
1 9 4 8 3 9
9
样例输出:
2
数据规模与约定:
1 <= n <= 1000。
解题思路:
输入的是三行数,第一行表示一共有几个数,第二行是输入所有数字,第三行是需要判断的数字。第一行直接定义一个n,第二行是一串数当然要定义一个数组了,第三行也是直接定义一个s。遍历的时候也是用for循环遍所有的数,然后用if语句进行判断,如果其中的某一个数与s相等就跳出循环,跳出循环用到的是break。然后在for循环外,再进行if判断,如果i的值大于n,就是没有这个数,输出-1,除此之外就输出i的值,也就是第几个出现的。需要注意的一点后面的i是在for循环外定义的,也就是全局变量。
完整代码:
#include <iostream>
using namespace std;
int num[1003];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>num[i];
int s;
cin>>s;
int i;
for( i=1;i<=n;i++) //循环遍历所有的数是否与s相等
{
if(num[i]==s)
break;
}
if(i>n) //数列中未找到
cout<<-1;
else
cout<<i<<endl;
return 0;
}