1191: 统计数字出现次数 [1*]

这个代码有错误,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;

}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呱呱呱~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值