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;
}
运行程序为什么最后一组输入的数值显示不出来?? 跑了下不知道你说的最后一组输入的数值显示不出来是什么意思 @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;
}
运行程序为什么最后一组输入的数值显示不出来?? 中英文泡椒 发表于 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]