发布网友
共3个回答
热心网友
#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();
}
热心网友
第五行 int m; 为一个无用定义,未被引用。(不是导致错误的主要原因)
导致你的错误的主要原因在第九行和第十一行:
a[k]==i%j; 改为 a[k]=i %j;
i==i/j 改为i=i/j;
热心网友
a[k] == i % j;
k++;
i == i/j;
改成
a[k] = i % j;
k++;
i =i/j;