蓝桥杯 OJ BASIC-5 查找整数

问题描述

给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。

输入格式

第一行包含一个整数n。

第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。

第三行包含一个整数a,为待查找的数。

输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。

Think:

 这个坑到我了,最后一个测试一直过不了无法AC,我是这样写的:
#include <iostream>
using namespace std;
#define maxn 1000+10
int main(){
    int a[maxn];
    int n,p,i;
    cin>>n;
    for(i=0;i<n;i++)cin>>a[i];
    cin>>p;
    i=0;
    while(i<n)
		if(a[i++]==p){
    		cout<<i;
    		break;
	}
    return 0;
}


 找的别人的是这样的,可以AC:


#include<iostream>

using namespace std;

int main(){
	int n,a,num[1000],seat=-1;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>num[i];
	}
	cin>>a;
	for(int j=0;j<n;j++){
		if(num[j]==a){
			seat=j+1;
			break;
		}
	}
	cout<<seat;
	return 0;
}
现在也没有找出原因,希望看到的大佬能看看怎么回事。
题目网址:http://lx.lanqiao.cn/detail.page?submitid=1948376###

Code:

 暂时贴上别人的。
#include<iostream>

using namespace std;

int main(){
	int n,a,num[1000],seat=-1;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>num[i];
	}
	cin>>a;
	for(int j=0;j<n;j++){
		if(num[j]==a){
			seat=j+1;
			break;
		}
	}
	cout<<seat;
	return 0;
}


猜你喜欢

转载自blog.csdn.net/qq_33331182/article/details/79120117