7-2 查找整数 (10 分)
本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。
输入格式:
输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。
输出格式:
在一行中输出X的位置,或者“Not Found”。
输入样例1:
5 7
3 5 7 1 9
结尾无空行
输出样例1:
2
结尾无空行
输入样例2:
5 7
3 5 8 1 9
输出样例2:
Not Found
#include <stdio.h>
int main(){
int N,X,i,flag=0; //i表示位置,flag标志寻找过程结束时是否找到X
scanf("%d %d\n",&N,&X);
for(i=0;i<N;i++){
int a[N];
scanf("%d ",&a[i]);
if(a[i]==X){
printf("%d",i);
flag=1;
}else if(a[i]!=X&&i==N-1){
printf("Not Found");
}
}
return 0;
}
为什么运行样例1时 出现“2Not Found”?
供参考:
#include <stdio.h>
#define M 21
int main()
{
int N, X, i, flag = 0; //i表示位置,flag标志寻找过程结束时是否找到X
int a[M] = { 0 };
scanf("%d %d", &N, &X); //scanf("%d %d\n", &N, &X);
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]); //scanf("%d ", &a[i]);
if (a[i] == X) {
printf("%d\n", i);
flag = 1;
}
//else if (a[i] != X && i == N - 1) {
// printf("Not Found");
//}
}
if (!flag)
printf("Not Found\n");
return 0;
}