1. 程式人生 > >藍橋杯 OJ BASIC-5 查詢整數

藍橋杯 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;
}