num[i]=n%base;
n=n/base;
for(j=i-1;j>=0;j--)
你的问题错了,应该是将十进制整数n转换成base进制,从do while循环中的终止条件n!=0就可以知道了。
比如求15的4进制
14%4=2;
num[0]=2;
n=14/4=3;
3%4=3;
num[1]=3
n=3/4=0;
结束
因此输出的应该是32,你计算一下刚好是3*4+2=14
十进制转任意进制
注意:这里只能用do...while(原因:如果输入的是0,那么我们希望a[0]=0)
#include
int main(){
int x,p; //x为十进制数,p为目标进制大小
scanf("%d",&x);
scanf("%d",&p);
int a[100]; //存放余数
int count=0;
do{
a[count++]=x%p;
x=x/p;
}while(x!=0);//当商不为0时进行循环
for(int i=count-1;i>=0;i--){
printf("%d",a[i]);
}
}
看看这个是不是你想要的答案