C语言一道改错题。将十进制正整数m转换成k(2<=k<=9)进制数,并按高位到低位输出。急!

#include <conio.h>
#include <stdio.h>
void fun(int m, int k)
{
int aa[20], i;
for(i = 0; m; i++)
{
/**********found**********/
aa[i] = m/k;
m /= k;
}
for(; i; i--)
/**********found**********/
printf("%d", aa[i]);
}
main()
{
int b, n;
printf("\nPlease enter a number and a base:\n");
scanf("%d %d", &n, &b);
fun(n, b);
printf("\n");
}

aa[i] = m/k改成aa[i] = m % k;,并且下面的输出语句也改下,代码如下:

#include <conio.h>
#include <stdio.h>
void fun(int m, int k)
{
int aa[20], i;
for(i = 0; m; i++)
{
/**********found**********/
aa[i] = m % k;
m /= k;
}
for(i--; i >= 0; i--)
/**********found**********/
printf("%d", aa[i]);
}
void main()
{
int b, n;
printf("\nPlease enter a number and a base:\n");
scanf("%d %d", &n, &b);
fun(n, b);
printf("\n");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-05-23
#include <conio.h>
#include <stdio.h>
void fun(int m, int k)
{ int aa[20], i;
for(i = 0;m>0; i++)
{/**********found**********/
aa[i] = m%k;
m /= k;
}
for(i--; i>=0; i--)
/**********found**********/
printf("%d", aa[i]);}
main()
{ int b, n;
printf("\nPlease enter a number and a base:\n");
scanf("%d %d", &n, &b);
fun(n, b);
printf("\n");
}
//这是正解 请采纳亲
第2个回答  2013-03-02
aa[i] = m/k这句改为aa[i] = m%k就行了
相似回答