求编程: 试编写程序,将用户输入的一个十进制正整数转化为十六进制输出。
- 提问者网友:逐野
- 2021-03-08 15:32
- 二级知识专家网友:许你一世温柔
- 2021-03-08 16:25
void put(int);
void convert(unsigned long int ,unsigned long int);
void main()
{
unsigned long int sort;
unsigned long int n;
do
{
printf("Please enter two numbers n and sort");
printf("\n n 代表你要转化的十进制正整数:");
scanf("%ld",&n);
printf("\n sort 代表你要转化的类型你可以输 2 8 16:");
scanf("%ld",&sort);
}while((n<0)||((sort!=2)&&(sort!=8)&&(sort!=16)));
convert(n,sort);
printf("\n");
}
void convert(unsigned long int n,unsigned long int sort)
{
unsigned long int num;
num=n%sort;
n/=sort;
if(n==0)
put(num);
else if(n
put(n);
put(num);
}
else if(n>=sort)
{
convert(n,sort);
put(num);
}
}
void put(int num1)
{
if(num1<10)
printf("%c",num1+'0');
else
switch(num1)
{
case 10:
printf("%c",'A');
break;
case 11:
printf("%c",'B');
break;
case 12:
printf("%c",'C');
break;
case 13:
printf("%c",'D');
break;
case 14:
printf("%c",'E');
break;
case 15:
printf("%c",'F');
break;
}
}
- 1楼网友:為→妳鎖鈊
- 2021-03-08 17:08
#include <stdio.h> void put(int); void convert(unsigned long int ,unsigned long int); void main() { unsigned long int sort; unsigned long int n; do { printf("please enter two numbers n and sort"); printf("\n n 代表你要转化的十进制正整数:"); scanf("%ld",&n); printf("\n sort 代表你要转化的类型你可以输 2 8 16:"); scanf("%ld",&sort); }while((n<0)||((sort!=2)&&(sort!=8)&&(sort!=16))); convert(n,sort); printf("\n"); } void convert(unsigned long int n,unsigned long int sort) { unsigned long int num; num=n%sort; n/=sort; if(n==0) put(num); else if(n<sort) { put(n); put(num); } else if(n>=sort) { convert(n,sort); put(num); } } void put(int num1) { if(num1<10) printf("%c",num1+'0'); else switch(num1) { case 10: printf("%c",'a'); break; case 11: printf("%c",'b'); break; case 12: printf("%c",'c'); break; case 13: printf("%c",'d'); break; case 14: printf("%c",'e'); break; case 15: printf("%c",'f'); break; } }