题目描述
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。
输入
测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。
输出
对于每组输入,请输出结果。
样例输入
4
1 2 3 4
3
样例输出
2
源代码
标答
#include <cstdio>
const int maxn = 210;
int a[maxn];
int main(){
int n,x;
while(scanf("%d", &n) != EOF){
for(int i = 0; i < n; i ++){
scanf("%d",&a[i]);
}
scanf("%d",&x);
int k;
for(k = 0; k < n; k ++){
if(a[k] == x){
printf("%d\n",k);
break;
}
}
if(k == n){
printf("-1\n");
}
}
return 0;
}
自己代码
#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
int n,x,flag;
int str[201];
while(scanf("%d",&n) != EOF){
for(int i = 0;i < n;i ++){
scanf("%d", &str[i]);
}
scanf("%d",&x);
flag = -1;
for(int i = 0;i < n;i ++){
if(str[i] == x){
flag = 0;
printf("%d\n",i);
break;
}
}
if(flag == -1){
printf("-1\n");
}
}
return 0;
}
总结
一开始总是输出超限,就很烦。也不知道怎么回事,把str的定义改了以下,之后终于不输出超限了。结果提交上去还是不对,再查一遍发现是在输出答案的时候没有加\n,导致的答案错误50%