蓝桥杯--基础知识--查找整数

来源:互联网 发布:sql 逻辑运算符 编辑:程序博客网 时间:2024/06/05 04:19
/*问题描述
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。*/

1:  C语言版的

#include<stdio.h>
#include<stdlib.h>
int main()
{int i, n,s,*p=NULL,loca;
scanf("%d",&n);
p=(int *)calloc(n,sizeof(int));
if(p==NULL)
{
     printf("数组动态申请失败\n");
     exit(1);
}


for(i=1;i<=n;i++,p++)
{
scanf("%d",p); 
    if(*p>10000||*p<0)
{
printf("输入有误,数列中的每个数都不大于10000。\n");
exit(1);
       }
}
scanf("%d",&s);
p=p-n;
for(i=1;i<=n;i++,p++)
{    
if(*p==s)
{
     loca=i;
break;
}
else
{
loca=-1;

}

}

printf("%d",loca);
return 0;

}

2:c++版本的(来自网友分享) 地址:http://blog.csdn.net/liubinzi123/article/details/39966685

  1.   
  2. #include <iostream>  
  3. using namespace std;  
  4.   
  5. const int N = 10001;//定义数组长度  
  6.   
  7. int main()  
  8. {  
  9.     int n;  
  10.     int a[N];  
  11.     int m;  
  12.   
  13.     while(cin>>n && n != 0)// 程序循环执行  
  14.     {  
  15.         for(int i = 1;i <= n;i ++)//初始化数组  
  16.         {  
  17.             cin>>a[i];  
  18.         }  
  19.   
  20.         cin>>m;  
  21.   
  22.         for(i = 1;i <= n;i ++)//数组元素与m进行比较  
  23.         {  
  24.             if(a[i] == m)  
  25.             {  
  26.                 cout<<i<<endl;  
  27.                 break;  
  28.             }  
  29.         }  
  30.   
  31.         while(i = n + 1 && a[i] != m)//如果都不满足,则输出-1  
  32.         {  
  33.             cout <<"-1"<<endl;  
  34.             break;  
  35.         }  
  36.   
  37.         cout<<endl;  
  38.     }  
  39.   
  40.     return 0;  
  41. }  


0 0
原创粉丝点击