标题:[求助]进制转换的编程题
取消只看楼主
frog555
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-11-9
 问题点数:0 回复次数:5 
[求助]进制转换的编程题

/* 函数fun的功能是:将十进制正整数m转换成k进制(2≤k≤9)数的数字输出。
例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
void fun(unsigned m , unsigned k)
*/
#include <stdio.h>
void fun(unsigned m,unsigned k);
void main(void)
{
unsigned int m,k;
scanf("%u%u",&m,&k);
fun(m,k);
}

void fun(unsigned m,unsigned k)
{
unsigned int a[4],i=0,j;
while(m%k!=0)
{
a[i]=m%k;
m=m/k;
i++;
}
for(j=0;j<=i;j++)
printf("%u",a[i-j]);
printf("\n");
}

我的思路是根据十转K进制是除K取余法`````
取得的余数放到一个数组中````除到最后无法再除的时候```
输出则由数组逆输出``不过我运算的结果不行
问题出在哪``
是不是数组上?数组后面没用到的单元是垃圾值还是0?


搜索更多相关主题的帖子: 进制 unsigned void fun 
2007-01-12 18:01
frog555
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-11-9
得分:0 

不对``你这样只能做结果只有四个的数``一旦超过会出错的````

2007-01-12 18:51
frog555
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-11-9
得分:0 
想通了````
我们无符号的整数最大也就65535换成最小的2进制也就是16个1,也就是位数最多的一种转换,
那么我就设拥有16个单元的数组,那么其他的转换就不超越这个界了,
懂了``
谢谢版主,谢谢hxpjohn
2007-01-12 18:58
frog555
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-11-9
得分:0 
谢谢```看看先``
2007-01-12 19:04
frog555
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-11-9
得分:0 

对于9楼的那里有个问题


为什么要把结构体内的top变为-1,
为什么不在调用InitStack(q);这函数的把他初始为0呢```

ElemType的英文解释是什么~

2007-01-12 21:44
frog555
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-11-9
得分:0 
不知道我哪句话冲上了你```
道歉啦```呵呵``别那么大的火```
大家都是学习学习嘛```
2007-01-12 22:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-115651-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053231 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved