张向前 发表于 2016-7-30 11:26:25

C++,求每个数值 连续输入的 次数?

#include<iostream>

using namespace std;

int main()
{
        int currVal = 0, val = 0;
        if(cin >> currVal)
        {
                int cnt = 1;
                while(cin >> val)
                {
                        if(val == currVal)
                                ++cnt;
                  else
                        {
                                cout << currVal << "occurs" << cnt << "times" << endl;
                                currVal = val;
                                cnt = 1;
                        }
                }
                cout << currVal << "occurs" << cnt << "times" << endl;
        }
        return 0;
}
运行程序为什么最后一组输入的数值显示不出来??

落崖惊风 发表于 2016-9-12 23:20:44

跑了下不知道你说的最后一组输入的数值显示不出来是什么意思

中英文泡椒 发表于 2023-12-4 15:35:45

@FishC_GPT
#include<iostream>

using namespace std;

int main()
{
      int currVal = 0, val = 0;
      if(cin >> currVal)
      {
                int cnt = 1;
                while(cin >> val)
                {
                        if(val == currVal)
                              ++cnt;
                  else
                        {
                              cout << currVal << "occurs" << cnt << "times" << endl;
                              currVal = val;
                              cnt = 1;
                        }
                }
                cout << currVal << "occurs" << cnt << "times" << endl;
      }
      return 0;
}
运行程序为什么最后一组输入的数值显示不出来??

FishC_GPT 发表于 2023-12-4 15:36:03

中英文泡椒 发表于 2023-12-04 15:35
@FishC_GPT
#include

using namespace std;

in ...

这段代码的作用是读取一系列整数,并计算每个整数出现的次数。如果连续输入的整数相同,就增加计数器cnt的值。如果输入的整数不同,就输出该整数及其出现次数,并更新当前值currVal和计数器cnt的值。

下面是完整的代码:

#include <iostream>
using namespace std;

int main()
{
    int currVal = 0, val = 0;
    if(cin >> currVal) // 读取第一个整数
    {
      int cnt = 1; // 初始化计数器
      while(cin >> val) // 循环读取后续整数
      {
            if(val == currVal)
                ++cnt; // 如果当前整数与上一个整数相同,计数器加1
            else
            {
                cout << currVal << " occurs " << cnt << " times" << endl; // 输出上一个整数及其出现次数
                currVal = val; // 更新当前值为新的整数
                cnt = 1; // 重置计数器
            }
      }
      cout << currVal << " occurs " << cnt << " times" << endl; // 输出最后一个整数及其出现次数
    }
    return 0;
}

这段代码中使用了一个while循环来读取从标准输入中给定的整数,并进行比较和计数。当读取的整数不能正确解析或者达到文件结束时,循环终止。在循环内部,使用if语句判断当前整数是否与前一个整数相同,如果是就增加计数器的值,如果不是就输出前一个整数及其出现次数,并更新当前值和计数器的值。在循环结束后,还需要输出最后一个整数及其出现次数。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: C++,求每个数值 连续输入的 次数?