/*
为了让程序清单9.8中的to_binary()函数更通用,编写一个to_base_n()函数接受两个参数,
且第二个参数在2~10范围内,然后以第2个参数中指定的进制打印第1个参数的数值。
例如,to_base_n(129,8)显示的结果为201,也就是129的八进制数。在一个完整的程序中测试该函数。
*/
#include<stdio.h>
void to_binary(unsigned long n);
int main(void)
{
unsigned long number;
int exp;
printf("Enter an integer (q to quit ) and exp:\n");
while (scanf("%lu %d", &number,&exp) == 2)
{
if (exp < 2 || exp >10)
{
printf("exp取值范围为2-10,请重新输入:");
continue;
}
printf("Equivalent:");
to_binary(number,exp);
putchar('\n');
printf("Enter an integer (q to quit ) and exp:\n");
}
printf("Done.\n");
return 0;
}
void to_binary(unsigned long n ,int x)
{
int r;
r = n % x;
if (n >= x)
to_binary(n /x,x);
putchar(r == 0 ? '0' : '1');
}
C PRIMER PLUS(第六版编程练习)9.11编程练习_10题
最新推荐文章于 2020-06-29 15:20:08 发布