#include <stdio.h>
int a[20]={0},i=0,n;
#define push(n) (a[i++]=n);
#define pop() a[i--];
main()
{
int a,b,m;
scanf("%d %d",&a,&b);
m=a;
while(m){
n=m%b;
push(n);
m=m/b;
}
i++;
while(i>0)printf("%d",pop());
}
--------------------------------------------------------------------------------------------------------------------
原先的写的比较乱,这里重新整理一便。
#include <stdio.h>
#include <math.h>
int main()
{
int number = 0; /*表示要进行进制转换的数字,初始化为0 */
int index = 0; /*表示转换的进制书,初始化为0 */
/*这里注意要考虑越界的问题,为方便这里只分配20空间,其实在实际中是不够的*/
/*可以考虑用malloc()来实现动态分配, 我这里就先不考虑了*/
int space[20] = {0}; /*定义一个存放20个数的空间,来模拟堆栈的效果*/
int i = 0;
/*输入数字number和要转换的进制数*/
scanf("%d %d", &number, &index);
/*进行进制转换,把结果放入数组space中*/
while(number)
{
space[i] = (number%index);
number = number/index;
i++;
}
/*print result*/
while(i >0)
{
if(space[i] >9)
{
/*转换十进制以上的数需要考虑表示为字母*/
printf("%s", space[i] + 55);
}
else
{
printf("%d", space[i]);
}
i--;
}
return 0;
}
本文介绍了一个简单的C语言程序,用于将十进制数转换为任意指定进制的数。通过使用数组模拟堆栈的方式,实现了从高位到低位的输出。程序还考虑了当转换结果大于9时使用字母表示的情况。

5534

被折叠的 条评论
为什么被折叠?



