就是输入一个十进制整数后,要一次性输出它的2,3,4一直到16进制的数值,用数组的方式写出来。谢谢大佬
#define N "0123456789ABCDEF"
#include <stdio.h>
void change(int x,int n,char *p){
char tmp[100];//临时存放转换数
int i,total=0;
while(x){
tmp[total++]=N[x%n];
x/=n;
}
for(i=total-1;i>=0;i--){
p[total-1-i]=tmp[i];
}
if(total==0){
p[0]='0';
p[1]=0;
}
else
p[total-1-i]=0;
}
int main()
{
char s[100];//用于存放转换的进制的数
int i,x;
printf("把一个数转换成2 3 4 ... 16进制数\n");
scanf("%d",&x);
for(i=2;i<=16;i++){
change(x,i,s);
printf("转换成%d进制是:%s\n",i,s);
}
}追问
#include <stdio.h>
void change(int x,int n,char *p){
char tmp[100];//临时存放转换数
int i,total=0;
while(x){
tmp[total++]=N[x%n];
x/=n;
}
for(i=total-1;i>=0;i--){
p[total-1-i]=tmp[i];
}
if(total==0){
p[0]='0';
p[1]=0;
}
else
p[total-1-i]=0;
}
int main()
{
char s[100];//用于存放转换的进制的数
int i,x;
printf("把一个数转换成2 3 4 ... 16进制数\n");
scanf("%d",&x);
for(i=2;i<=16;i++){
change(x,i,s);
printf("转换成%d进制是:%s\n",i,s);
}
}追问
因为本人是大一刚学c语言,还是很基础的,所以有点看不懂,能请您稍微讲解一下吗
温馨提示:答案为网友推荐,仅供参考