编写程序,将一个十进制正整数转换成十六进制数

来源:互联网 发布:编程语言有多少 编辑:程序博客网 时间:2024/05/24 22:43
//编写程序,将一个十进制正整数转换成十六进制数


/*
程序分析:
1.如果在0-9 直接输出0-9
2.写一个对应函数 用循环代替 
3. 中间遇到问题,怎么判断一个输入数字的长度
设置一个while 循环,循环条件是n>=10;然后不断的除以10 
*/
#include "stdio.h"
#include "string.h"
#include "math.h"
int main()
{
int num[10];
int i,j,m;
int num1;
char k;
scanf("%d",&num1);
/*
for(i=0;num[i]!='\0';i++)     //测试通过 
{
scanf("%d",&num[i]);
}

for(i=0;num[i]!='\0';i++)
{

printf("num=%d",num[i]);

}
*/


for(i=0;i<16;i++)
{
for(j=0;j<16;j++)    //i为16进制个位数,J为10位 
{
if((i+j*16)==num1)
{
printf("i=%d,j=%d",i,j);
printf("\n");

if(i>9)
{
k=i-10+'A';
printf("个位%c",k);
}
if (j>9)
{
m=j-10+'A';
printf("十位%c",m);
}

}
 
 
}




}


答案给的程序    好像比我的程序更简洁, 我就是不喜欢做除   

#include <stdio.h>

main()

{

       chara[20];

       intx,i=0,j;

       clrscr();

       scanf("%d",&x);

       while(x)

       {

          if(x%16>=10&&x%16<=15)

            a[i]=x%16-10+'A';

          else

            a[i]=x%16+'0';

              x=x/16;

              i++;

 

       }

       for(j=i-1;j>=0;j--)

              printf("%c",a[j]);

              printf("\n");

}

0 0
原创粉丝点击