C++ 如何计算一个整数链中的数字使用了多少次?

C++ 如何计算一个整数链中的数字使用了多少次?,c++,int,digits,C++,Int,Digits,这似乎是一项简单的任务,但由于某些原因,我的代码无法工作。 我试着改变部分,看看有什么变化,修复了错误使用的变量,但每次我试图构建和运行程序时,环境仍然崩溃 这是我的密码: int n, a, dgt, I, II, III, IV, V, VI, VII, VIII, IX; cout << "Enter an integer: \n"; cin >> n; a = n; while (a > 0)

这似乎是一项简单的任务,但由于某些原因,我的代码无法工作。 我试着改变部分,看看有什么变化,修复了错误使用的变量,但每次我试图构建和运行程序时,环境仍然崩溃

这是我的密码:

int n, a, dgt, I, II, III, IV, V, VI, VII, VIII, IX;
    cout << "Enter an integer: \n";
    cin >> n;
    a = n;
    while (a > 0)                    // I use this cycle to seperate every number of the chain
    {
        while (n > 0)                // I use this cycle to analyze every number of the chain
        {
            dgt = n % 10;
            n = n / 10;
            if (dgt == 1) I ++;
            if (dgt == 2) II++;
            if (dgt == 3) III ++;
            if (dgt == 4) IV ++;
            if (dgt == 5) V ++;
            if (dgt == 6) VI ++;
            if (dgt == 7) VII ++;
            if (dgt == 8) VIII ++;
            if (dgt == 9) IX ++;
        }

        a--;
    }

intn,a,dgt,I,II,III,IV,V,VI,VII,VIII,IX;
cout>n;
a=n;
while(a>0)//我使用这个循环来分离链中的每个数字
{
while(n>0)//我使用这个循环来分析链的每个数字
{
dgt=n%10;
n=n/10;
如果(dgt==1)I++;
如果(dgt==2)II++;
如果(dgt==3)III++;
如果(dgt==4)IV++;
如果(dgt==5)V++;
如果(dgt==6)VI++;
如果(dgt==7)VII++;
如果(dgt==8)VIII++;
如果(dgt==9)IX++;
}
a——;
}

如果您能给我任何建议,我将不胜感激:)

有一种更为标准的方法来计算项目的频率

使用键等于项目和计数器的
std::map
。例如:

std::map<SomeType, size_t> frequencyOfSomeType;

有一种更为标准的方法来计算项目的频率

使用键等于项目和计数器的
std::map
。例如:

std::map<SomeType, size_t> frequencyOfSomeType;

欢迎来到堆栈溢出!听起来您可能需要学习如何使用调试器逐步完成代码。有了一个好的调试器,您可以逐行执行您的程序,并查看它偏离预期的地方。这是一个必要的工具,如果你要做任何编程。进一步阅读:和
intn,a,dgt,I,II,III,IV,V,VI,VII,VIII,IX这些都初始化了吗?你不需要外循环。似乎数组的概念可以大大简化你的程序员生活。你忘了
如果(dgt==0)O++?欢迎使用堆栈溢出!听起来您可能需要学习如何使用调试器逐步完成代码。有了一个好的调试器,您可以逐行执行您的程序,并查看它偏离预期的地方。这是一个必要的工具,如果你要做任何编程。进一步阅读:和
intn,a,dgt,I,II,III,IV,V,VI,VII,VIII,IX这些都初始化了吗?你不需要外循环。似乎数组的概念可以大大简化你的程序员生活。你忘了
如果(dgt==0)O++