进制转换
1.十进制到n进制的转换(n<10)
原因:不知道如何实现A~F的输出。
原代码,只能实现到n进制,n<10
#include <stdio.h>
#include <stdlib.h>
int main()
{
int newbase,num,q=1,r,newnum=0,count=1,i;
printf("the new base:");
scanf("%d",&newbase);
printf("the number to be converted:");
scanf("%d",&num);
while(q!=0)
{
q=num/newbase;
r=num%newbase;
for(i=1;i<count;i++)
r=r*10;
newnum=newnum+r;
num=q;
count++;
}
printf("the new number:%d\n",newnum);
return 0;
}
2.十六进制
暂时无法实现十以上进制的转换,我便向AI求助。
以下是求助过程。
3.新代码
新代码,能实现到n进制,n<=16
#include <stdio.h>
#include <stdlib.h>
int main()
{
int newbase,number,q=1,r,index=0,i;
char num[100];
printf("the new base:");
scanf("%d",&newbase);
printf("the number to be converted:");
scanf("%d",&number);
while(q!=0)
{
q=number/newbase;
r=number%newbase;
if(r<10)
num[index]=r+'0';
else
num[index]=r-10+'A';
index++;
number=q;
}
printf("the new number:");
for(i=index; i>=0; i--)
printf("%c",num[i]);
return 0;
}
4.运行结果
5.经验总结
(1)学会了在C语言中通过数组储存多个同类型元素。
(2)回忆了字符的存储、输出。