十进制转化为任意进制的C语言代码调试?

写一个任意的十进制数,可以转换为任意的进制,我学的代码如下
#include<stdio.h>
int change(int i,int j)
{
int a[20];
int m;
int k=0;
while(i)
{
a[k] == i % j;
k++;
i == i/j;
}
for(; k>=0;k--)
printf(" %d",a[k]);
}

main()
{
int a,b;
printf("请输入一个十进制数 :");
scanf("%d\n",&a);
printf("\n");
printf(" 要转换的进制为:");
scanf("%d\n",&b);
printf("\n");
change(a,b);
}
不报错 ,但达不到效果,不知道是我 思路方面有问题还别的,望高数在此基础上改正,怎样才能做到,谢谢。。

#include<stdio.h>
#include<conio.h>
void change(int i,int j)
{
int a[20]={0};//为数组赋予初值零,即使出错时输出也不会杂乱无章
int m;
int k=0;
printf("十进制数%d转换为%d进制后为:",i,j);
while(i)
{
a[k]=i%j;//“==”是判断数值上是否相等,而此处应用赋值运算符“=”,将表达式的值赋给a[k]
k++;//最终k指向了a中有效元素的下一元素,所以下面的for循环应先使k-1
i=i/j;
}

for(k=k-1;k>=0;k--)
printf("%d",a[k]);
printf("\n");
}

void main()
{
int a,b;
printf("请输入一个十进制数 :");
scanf("%d",&a);//scanf()里面加"\n"换行符虽然不会报错,但没见过这种用法,而且不能正 //确方便地输入数数据
printf("\n");
printf("要转换成的进制为:");
scanf("%d",&b);
printf("\n");
change(a,b);
getch();

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-05
第五行 int m; 为一个无用定义,未被引用。(不是导致错误的主要原因)
导致你的错误的主要原因在第九行和第十一行:
a[k]==i%j; 改为 a[k]=i %j;
i==i/j 改为i=i/j;
第2个回答  2011-06-05
a[k] == i % j;
k++;
i == i/j;

改成
a[k] = i % j;
k++;
i =i/j;

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网