这个代码有错误,up主在努力修改中,阅读一下up主其他文章吧~
题目描述
【问题】输入N个数,计算数字M的出现次数,并输出M的第一次出现的位置
【输入说明】总共N+2行数据。第一行为数字N。接下来N行,每行一个整数。最后一行为数字M。
在上述的N的数据中查找M第一次出现的位置及总共出现的次数。
【输出要求】输出M首次出现的位置和次数。未找到的位置输出0,次数输出0
【样例输入】
5
52
18
18
654
18
18
【样例输出】
2 3
【说明】n<=100000
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N; // 读取整数N,表示接下来要输入的数字个数
int count = 0; // 初始化计数器,用于记录目标数字M出现的次数
int firstPosition = 0; // 初始化首次出现位置为0
bool found = false; // 标志变量,用于标记是否找到目标数字M
int currentNumber; // 用于存储当前读取的数字
int targetNumber; // 目标数字M,待查找的数字
for (int i = 1; i <= N; ++i) { // 循环读取N个数字
cin >> currentNumber; // 读取当前数字
if (!found && currentNumber == targetNumber) { // 如果尚未找到目标数字且当前数字等于目标数字
firstPosition = i; // 记录首次出现的位置
found = true; // 设置标志变量为true,表示已找到目标数字
}
if (currentNumber == targetNumber) { // 如果当前数字等于目标数字
count++; // 增加计数器
}
}
cin >> targetNumber; // 读取目标数字M
if (!found) { // 如果未找到目标数字
firstPosition = 0; // 将首次出现位置设为0
count = 0; // 将计数器设为0
}
cout << firstPosition << " " << count << endl; // 输出首次出现的位置和出现次数
return 0;
}