在我的函数中,这段代码是什么?

时间:2016-10-28 02:06:22

标签: c++ function max frequency

这是整个代码。它需要一个整数x并返回整数x中最常见的数字,同样在tie的情况下它返回更大的值。

#include <iostream>
using namespace std;
int max_frequency(int x)
{
   int a[] = {0,0,0,0,0,0,0,0,0,0};
   int temp, max;
   while(x > 0)
   {
       temp = x%10;
       x=x/10;
       a[temp]++;
   }
   max = 0;
   for(int i = 1; i < 10; i++)
   {
       if(a[i] >= a[max])
       {
           max = i;
       }
   }
   return max;
}
int main()
{
   int x;
   cout << "Enter the integer: "<< endl;
   cin >> x;
   cout << max_frequency(x) << endl;
   return 0;
}

我很困惑的部分:

int max_frequency(int x)
{
   int a[] = {0,0,0,0,0,0,0,0,0,0};
   int temp, max;
   while(x > 0)
   {
       temp = x%10;
       x=x/10;
       a[temp]++;
   }
   max = 0;

我知道0的数组用作计数器,我不明白的是分配给变量temp的内容,以及为什么。我有一些帮助编写这段代码,但它没有清楚地向我解释这里发生了什么。如果有人不介意解释这件作品,我会非常感激。谢谢。

1 个答案:

答案 0 :(得分:1)

%是模运算符,意味着x%y等于x除以y的余数。在这种情况下,我们可以看到x%10返回x的最右边数字,对吧?现在我们可以计算一个数字的数字