首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个会重复输入的 进制转化程序

2013-08-14 
一个能重复输入的 进制转化程序本意是做成一个有两级输入的程序第一层输入待转化的十进制数,第二层输入转

一个能重复输入的 进制转化程序
本意是做成一个有两级输入的程序
第一层输入待转化的十进制数,第二层输入转化的进制数
第二层可以任意重复输入,并且可以返回第一层 重新输入待转化的十进制数
但是结果,在转化后的字符末尾多出“10”
求解答


#include<stdio.h>
void fun( int x ,int y);
int main(void)
{
int num;
int jinzhi;
puts("请输入一个十进制数:");

while(scanf("%ld",&num) == 1)
{
puts("请输入要转化的进制数:");
while(scanf("%ld",&jinzhi) == 1)
{
fun(num,jinzhi);
printf("%ld转化为%d进制为:",num,jinzhi);
puts("\n请输入要转化的进制数:(q 返回上一级)");
}
puts("\n请输入一个十进制数:(q to quit)");
while(getchar() != '\n')
continue;
}
/*puts("输入两个数:");  用这段代码可行,说明肯定是上面的代码 出问题了
scanf("%d%d",&num,&jinzhi);
fun(num,jinzhi);*/
puts("Bye!~");
return 0;
}

void fun(int x,int y)  //任意进制转换(一至十)
{
int r;
r = x%y;
if(x >= y)
{
x=x/y;
fun(x,y);         //递归
}

putchar(r + '0');
}
C 进制转化 重复输入
[解决办法]
将你的输出结果贴上来
[解决办法]
用:;<=>?表示10~15?

[解决办法]
VC6.0下测试了,没有问题
只是打印顺序有点问题,改了一下
while(scanf("%ld",&jinzhi) == 1)
{
    printf("%ld转化为%d进制为:",num,jinzhi);//这行放到这里
    fun(num,jinzhi);
    puts("\n请输入要转化的进制数:(q 返回上一级)");
}

热点排行