17.4配列は進数変換に用いられる(正直、よくわからないことに遭遇すると「萎えた!!:-()

1584 ワード

/*
 * Copyright (c) 2013,          
* All rights reserved.
*       :  
*     :2013   12   17  
*      :v1.0
*
*     :  
*     :        
*     : 
*     :          32        
*     : 
*/
#include <iostream>
using namespace std;
void tran(int n, int d);
int main()
{
    tran(1800, 8);
    tran(2000, 24);
    tran(1600, 2);
    return 0;
}

void tran(int n, int d)
{
    int k,a[100],m=0,max,i;
    k=n;                       //  k   n   ,n            
    while(k>0)
    {
        a[m++]=k%d;            //    d    m 
        k/=d;
    }
    max=0;
    cout<<n<<"   "<<d<<"    :"; //  d   ,             
    for(i=m-1; i>=0; i--)
    {
        if(a[i]<10)
            cout<<a[i];
        else
            cout<<char('A'+a[i]-10);
        if(max<a[i]) max=a[i];
    }
    cout<<endl;
    cout<<"          " << ((max<10)?char('0'+max):char('A'+max-10)) << ",     ";  //         max

    for(i=m-1; i>=0; i--)
    {
        if(a[i]==max)
            cout<<m-i<<' '; //i=m-1 , m-i 1, 1    ,    
    }
    cout <<"  。"<<endl;
}

心得:ああ!進数になるとカードが!いつも分からないで、先生が送ったのを见てやっと自分がしたことが何なのかを発见します???そんなに面倒くさい!・・・