1934: 找x
时间限制: 1 Sec 内存限制: 32 MB
提交: 6761 解决: 1850
[提交][状态][讨论版][命题人:外部导入]
题目描述
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。
输入
测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。
输出
对于每组输入,请输出结果。
样例输入
4 1 2 3 4 3
样例输出
2
- 思路分析:
- 本题是在一个数组中匹配某个值,用for遍历即可,找到就退出,如果遍历完没有找到就输出-1
- 注意本体题目说测试数据有多组
- 本题输出需要\n换行
- 数组定义时,既可以定义int s[n];也可以定义int s[201];,后面这个写法,比较常用.第一种写法是我自己这样写.应该有某方便问题.,但是没有显示出来
#include <stdio.h>
int main(){
int s[201]={0};\\n最大200,所以取201够了
int n,x;
while(scanf("%d",&n)!=EOF){\\判断是否有输入
for(int i=0;i<n;i++){
scanf("%d",&s[i]);\\循环输入数组值
}
scanf("%d",&x);\\输入x值
for(int i=0;i<n;i++){
if(s[i]==x) {
printf("%d\n",i);
break;}\\遍历数组,与x匹配,成功便退出该循环
if(i==(n-1)) printf("-1\n");\\当i等于(n-1)时,如果s[i]==x,在上面一行中,就会执行并退出该循环,既然没有退出,说明不等,输出-1
}
}
return 0;
}
本题犯的错:
- 没有看清题意,需要测试多组数据
- 结尾没有加\n