题目描述:
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。
输入描述:
测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。
输出描述:
对于每组输入,请输出结果。
#include <cstdio>
#include <iostream>
using namespace std;
int main(){
int n, x;
while(~scanf("%d", &n)){
int arr[n];
for(int i = 0; i < n; ++i){
scanf("%d", &arr[i]);
}
scanf("%d", &x);
bool sign = false;
int k;
for(int i = 0; i < n; ++i){
if(x == arr[i]){
sign = true;
k = i;
break;
}
}
if(sign){
printf("%d\n", k);
}else{
printf("-1\n");
}
}
return 0;
}
改进:
#include <iostream>
#include <cstdio>
using namespace std;
const int MAXN = 200 + 10;
int arr[MAXN];
int main(){
int n;
while(~scanf("%d", &n)){
for(int i = 0; i < n; ++i){
scanf("%d", &arr[i]);
}
int x, order = -1;
scanf("%d", &x);
for(int i = 0; i < n; ++i){
if(arr[i] == x){
order = i;
break;
}
}
printf("%d\n", order);
}
return 0;
}