“蓝桥杯”练习系统——基础练习 查找整数(C语言)
提交次数:3次
题目:
问题描述
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。
代码解析:
#include <stdio.h>
int main()
{
int n,a,i;
int s[1000];
//输入
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&s[i]);
}
scanf("%d",&a);
//a存在于数列中
for(i=0;i<n;i++)
{
if(s[i]==a)
{
// printf("%d",i+1);
break;//此处使用break,是为了让循环在第一次出现s[i]==a时就停止循环,并记录其位置
}
}
if(i<n)
{
printf("%d",i+1);
}
else printf("-1");
return 0;
}
这道题卡在了一个很简单的地方,就是为了计算第一次在数列中找到的a值在第几位,所以写了一个for循环,同时将printf写在了循环中,这样就导致我的else printf会循环输出,但这并不符合题目的输出规则。所以,最后我将两个输出全部跳出了循环进行书写,这样代码就可以通过测试了。