如何修复分配给变量的数字和出现的次数?

How do I fix the assigning numbers to the variable and the number of occurrence?

我想出了一个代码,但我仍然不知道我哪里错了,有两个问题,数字和出现的次数。如果一个在工作,另一个不在。

任务:使用 while 循环,编写一个程序,要求用户输入一个正数,比方说 N。程序然后要求用户输入 N 个正整数。该方案是为了确定 数字中的最大值及其出现的次数。

到目前为止我所做的工作:

    #include <iostream>

using namespace std;

int main()
{
    int nnum, x = 1, unum, sum, max = 0,  anum, occ = 0, rem, quo;

    cout << "Input number of positive integers: ";
    cin >> nnum;
    cout << "Input " << nnum << " positive numbers: ";

    while (x<=nnum) {
            cin >> unum;
            anum = unum;
            quo = anum;
            sum += unum;
            if (max < unum) {
                max = unum;
            }
            x++;

            while (quo != 0) {
                    rem = quo%10;
                    quo = quo/10;

                    if (anum == rem) {
                            occ += 1;
                    }
            }
    }



    cout << "Highest: " << max << endl;
    cout << "Occurrence: " << occ;


    return 0;
}

我不确定您的代码试图做什么。我采用的方法很简单:在读取数字时跟踪最大值和出现次数。

  • 如果您读取的数字大于当前最大值,则更新当前最大值并重置出现次数计数器。
  • 如果您读取的数字等于当前最大值,则增加出现次数计数器。

您还应该在此处使用 for 循环而不是 while 循环,并且您可能还想验证您的输入。

#include <iostream>

int main()
{
    int n, max_number = -1, occurrences = 0;

    std::cin >> n;

    for(int i = 1; i <= n; i++)
    {
        int temp;

        std::cin >> temp;

        if(temp > max_number)
        {
            max_number = temp;
            occurrences = 0;
        }

        if(temp == max_number)
        {
            occurrences++;
        }
    }

    std::cout << max_number << ' ' << occurrences;

    return 0;
}