122页第20题

#include<stdio.h>  
  
int Reverse(unsigned int i)  
{  
    int c=0;  
      
    do  
    {  
        c = c*10+i%10;  
        i/=10;  
    }while(i!=0);  
    i=c;  
    printf("%d\n",i);  
    return i;  
}  
  
  
void trans(int n ,int base)  
{  
    unsigned int i = 0;  
    if(base == 2)  
    {  
        while(n != 0)  
        {  
            i = i*10+n%2;  
              
            n /= 2;  
        }  
        Reverse(i);  
          
    }  
      
    if(base == 8)  
    {  
        while(n != 0)  
        {  
            i = i*10+n%8;  
              
            n /= 8;  
        }  
          
        Reverse(i);  
          
    }  
      
    if(base == 16)  
    {  
        while(n != 0)  
        {  
            i = i*10+n%16;  
              
            n /= 16;  
        }  
          
        Reverse(i);  
          
          
    }  
      
      
}  
  
int main ()  
{  char ch=0;
  do{
  
    int n,base,i;  
    printf("输入一个数:");  
    scanf("%d",&n);  
    printf("您想转化的进制为?[2/8/16]:");  
    scanf("%d",&base);  
    trans(n ,base);
    printf("是否继续?[y/n][y]");
while ((ch=getchar())!='\n'); 
}while((ch=getchar())=='y'||ch=='\n');
    return 0 ;  

    } 




      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值