笔记2023九月十二日"/>
小白刷题笔记2023九月十二日
题目
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
第一行包含一个整数n。1≤n≤1 0 0 0。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
一开始做这道题的时候,想到了是用数组和循环来解决
但是在写的过程中发现,在这道题的输出过程中,没有找到这个整数输出-1的情况一直没有解决
如果把一个if判断放在循环里会导致两种情况
1.可能在没有遍历完这个数组的时候就输出了-1,导致运行的结果出现问题
2.可能在找到这个整数的对应的序号之后依然输出-1;
最后的解决办法
创建一个变量,令这个变量=-1;这样在循环中进行条件判断时可以对这个变量进行赋值,如果没有找到这个整数,此时循环已经结束,将整个数组遍历,此时变量的值还为-1,再进行输出,就可以在遍历完整个数组,且没有找到对应的整数的时候,输出-1;
从而AC这道题
#include<iostream>
using namespace std;
int arr[1000];
int main()
{int n = 0;cin >> n;for (int i = 0; i < n; i++){cin >> arr[i];}int a = 0;cin >> a;int index = -1;for (int i = 0; i < n; i++){if (arr[i] == a){index = i + 1;break;}}cout << index << endl;
}
更多推荐
小白刷题笔记2023九月十二日
发布评论