C语言 进制转换 帮我改一下

[复制链接]
查看11 | 回复2 | 2010-7-6 20:32:04 | 显示全部楼层 |阅读模式
#include "stdio.h"
int x,r;
void change(int x;int r) //递归法转换进制
{
int c;
c=x%r; //末位为x除以r的余数,比如3转换成2进制,末位为3%2=1
if(x/r!=0) //如果x比r大,意味着还没转换完
change(x/r,r) ; //把x/r转换成r进制,递归调用
printf("%d",c); //输出每一位
}
main()
{
scanf("%d%d",&x,&r); //输入x,r,x为10进制数,r为要转的进制
if(x<0)
{
printf("-");
x=-x; //x为负数就加负号
}
change(x,r);
}
能不能帮我把自定义函数中 输出转换后的数 改为 返回那个值然后在主函数中用printf进行输出
十进制转换为任一进制

回复

使用道具 举报

千问 | 2010-7-6 20:32:04 | 显示全部楼层
#include "stdio.h" int x,r; static int i=0;int a[100];void change(int x,int r) //递归法转换进制{ int c; c=x%r; //末位为x除以r的余数,比如3转换成2进制,末位为3%2=1a[i++]=c;if(x/r!=0) //如果x比r大,意味着还没转换完change(x/r,r) ; //把x/r转换成r进制,递归调用//printf("%d",c); //输出每一位} void main() { printf("请输入一个十进制数和要转换几进制数:\n");
scanf("%d%d",&x
回复

使用道具 举报

千问 | 2010-7-6 20:32:04 | 显示全部楼层
修改如下://---------------------------------------------------------------------------#include "stdio.h" int change(int x,int r){if (x/r) return change(x/r,r)*10+x%r;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行