C++ 计数一个数字在没有数组的情况下重复的次数(c+;+;)

C++ 计数一个数字在没有数组的情况下重复的次数(c+;+;),c++,C++,我需要一个程序来获取0-20之间的100个数字,并计算重复次数最多的数字的重复次数。 这是我用更少的输入量得到的结果(10而不是100),但ofc是错的 #include <iostream> using namespace std; int main() { int num, x,c; for(int i=1; i<=10; i++) { cin >> num; if(num==x) c+

我需要一个程序来获取0-20之间的100个数字,并计算重复次数最多的数字的重复次数。
这是我用更少的输入量得到的结果(10而不是100),但ofc是错的

#include <iostream>
using namespace std;

int main() {
    int num, x,c;

    for(int i=1; i<=10; i++) {
        cin >> num;
        if(num==x)
            c++;
        else
            x=num;
    }

    cout << c;
    return 0;
}
#包括
使用名称空间std;
int main(){
int num,x,c;
对于(int i=1;i>num;
如果(num==x)
C++;
其他的
x=num;
}

cout假设你指的是最长的连续序列,这里有一种方法可以做到:

#包括
int main(){
int max_val=0,max_len=0;//总长度
int cur_val=0,cur_len=0;//当前
对于(int i=0;i<10;++i){
int-val;
std::cin>>val;//读取1个数字
if(val==cur_val)//如果仍然计数相同,则增加长度
++库伦;
else{//else,设置最大值并重置当前值
如果(当前长度>最大长度){
最大长度=当前长度;
最大值=当前值;
}
cur_len=1;
cur_val=val;
}
}
/考虑最后一个序列
如果(当前长度>最大长度){
最大长度=当前长度;
最大值=当前值;
}
//结果

std::cout当您第一次测试
num==x
时,
x
未初始化且其值不确定,这同样适用于
c++
,您只需增加一个不确定的“垃圾”值。至于您的算法,您需要一种方法来存储当前重复的长度和到目前为止最长的重复数。当数字发生变化时,您还必须重置重复计数器。如果编译器没有警告您类似的事情,请调整选项直到它出现(
-Wall-Wextra
适用于gcc和clang)。在尝试使用变量read(
if(!(std::cin>>num)){/*Handle error*/}
之前,还应测试输入操作以确保其成功@PaulMcKenzie这个问题只有在任务是找到最长的重复数字序列时才有意义。我认为是这样。谢谢你的帮助,但我只能使用循环和条件等基本命令。@athena你可以替换
max=std::max(max,cur,sequence\u len\u less)
有一个简单的条件赋值。其余的我想没有什么特别的。@athena看到更新的答案了吗?是的,我查过了,谢谢,请阅读