2016-10-28 6 views
-3

これはコード全体です。これは整数xをとり、整数x内の最も一般的な桁を返します。また、同値の場合は大きな値を返します。私の機能の中でこのコードブロックは何をしていますか?

#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

ペンと紙を手に入れ、コンピュータであるとふりをして、この機能を手で実行し、何が起こるかを見てください。 – immibis

+0

私はこれを試しました。たとえば、入力された整数が122の場合、私の一時変数には12.2の値が割り当てられますか? –

+0

*** int *** egerに「12.2」を割り当てることができるとはどういうことですか? –

答えて

1

%はモジュロ演算子です。つまり、x%yは、xをyで除算した余りに等しくなります。その場合、x%10はxの右端の数字を返します。数字の数字を数えることができる

+0

ありがとうございました! –

+0

あなたは大歓迎です=) – fmilani

関連する問題