30位非负整数进制转换c语言代码,设计一个程序,该程序能将任意的一个int型10进制非负整数转换成任意N进制的数(N<=16)...

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

www7988150

2014.11.22

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:47%    等级:9

已帮助:116人

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687//程序供参考#include <stdio.h>#include <string.h> //函数:reverse//功能:反转字符串//参数:  //    str : 要进行反转的字符串//返回值:无void revease( char * str){    char * head = str;                     //指向字符串的头部第一个字符    char * tail = str + strlen( str ) - 1; //指向字符串的尾部最后一个字符    char   tmp;                            //交换头尾字符时的临时变量    while( head 十进制数转成任意进制,并将结果通过通过参数返回//参数:  //    num:要转换的数字//   base:进制//    out:输出缓冲区,以字符串的形式返回转换后的数字//返回值:true 成功,false 失败bool convert( unsigned long num, unsigned long base,char * out){    char ch[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; //定义数码    char * p = out;        //指向输出缓冲区的头部    unsigned long remain;  //转换时用的变量,保存 余数     //如果进制超范围,返回false    if(base > 16 || 1 == base )        return false;     //数字除以基数,取余;结果除基数再取余,直到结果整数部分为0止    //把得到的余数倒转 即得到 对应的相应进制的数字    do    {        remain = num % base; //取一次相除的余数        num = num / base;    //取一次相除的结果        *p = ch[remain];     //将余数对应的表示字符写到缓冲区        p++;                 //缓冲区后移    }while( num > 0);        //直到结果整数部分为0止         *p = '\0';               //给输出缓冲的最后加个结束字符     revease( out );          //把输出缓冲区倒转    return true;}; int main(){    int  i;             //循环变量     int  N;             //个数    unsigned long num;  //要转换的数    unsigned long base; //要转换成的进制         char outbuff[65];   //输出缓冲区,64位系统,long 最多64位,加一位放结束字符     printf("请输入要转换的十进制数个数 : ");    scanf("%ld",&N);     for(i = 1; i<= N;i++)    {        printf("第%3d个数及进制 : ",i);        scanf("%ld %ld",&num,&base);        if( convert( num,base,outbuff))        {            printf("     要转换的数 : %ld\r\n",num);            printf("     转换成%02ld数 : %s\r\n",base,outbuff);        }        else            printf("转换失败。\r\n");    }     getchar();    getchar();}追问: ,谢谢你了,不过编译错误

追答: 程序是经验证的,只用标准库在vs2010编译通过,运行正常。如果代码粘贴后编译出问题检查粘贴后格式是否正确,可以把错误信息发上来。

追问: Compilation Error

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值