问题描述
给你 n 个数,再给你一个数 k,查找 k 在这 n 个数中第一次出现的位置(从 0 开始计数),不存在输出 No。
输入
多组测试数据,对于每组测试数据:
第一行输入一个整数 n (1 ≤ n ≤ 100)。
第二行输入 n 个整数 a[i]。
第三行输入一个整数 k。
输出
查找 k 在这 n 个数中第一次出现的位置(从 0 开始计数),不存在输出 No。
样例
输入数据 1
7
8 8 4 1 9 3 7
3
5
8 1 5 1 3
3
5
9 2 6 8 8
4
1
3
10
输出数据 1
5
4
No
No
参考代码
代码已经做了注释
#include<bits/stdc++.h>
using namespace std;
// 定义全局变量k、n和x
int k, n, x;
// 定义数组a,用于存储输入的数字
int a[110];
// 主函数开始
int main(){
// 循环读取输入,直到没有输入为止
while(cin>>n){
// 读取n个数并存储到数组a中
for(int i=0;i<n;i++)cin>>a[i];
// 读取要查找的数字k
cin>>k;
// 初始化标记为false,表示还没有找到k
bool f = false;
// 存储找到k的位置
int c;
// 遍历数组a
for(int i=0;i<n;i++){
// 如果找到了k
if(a[i]==k){
// 标记为true
f = true;
// 存储位置
c = i;
// 结束循环
break;
}
}
// 如果找到了k
if(f == true){
// 输出找到的位置
cout<<c<<endl;
}else{
// 如果没有找到k,输出"No"
cout<<"No"<<endl;
}
}
// 主函数结束,返回0
return 0;
}