标题:关于一维数组的问题,将十进制数转化为任意进制的数
只看楼主
咚呱咚呱
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:29
专家分:2
注 册:2010-4-13
结帖率:100%
已结贴  问题点数:20 回复次数:2 
关于一维数组的问题,将十进制数转化为任意进制的数
小弟初学,遇到问题如下。
题目:将用户输入的十进制数转换成任意进制的数。
  (算法分析:进制之间转化采用辗转相除法。由用户输入十进制数(用n表示),以及要转化的进制(用变量base表示),然后将转换的结果存储在一维数组num【32】中。)
题中所给程序如下:
#include<stdio.h>
void main()
{
    int i=0,base,num[32];
    long int n;   char c;
    printf("Input number:");
    scanf("%ld",&n);
    printf("Input base:");
    /*请将此处代码补充完整*/
}



小弟编写程序如下:(和题目中所给出的程序段有所不同)
#include <stdio.h>
void main()
{
    int i=0,base,num[32],j;
    long int n;
    printf("Input number:");
    scanf("%ld",&n);
    printf("Input base:");
    scanf("%d",&base);
    for(;num[i]!=0;i++)
    {
        num[i]=n%base;
        n=n/base;
    }
    for(j=i-1;j>=0;j--)
        printf("%d",num[j]);
}
C语言不报错,但在运行时总出现错误,望各位能帮忙留神一下,帮小弟解决发现问题,解决这个问题。您的指点将帮助小弟在变成之路上越走越远!谢谢!!!

[ 本帖最后由 咚呱咚呱 于 2010-5-6 20:58 编辑 ]
搜索更多相关主题的帖子: long void include number 十进制 
2010-05-06 20:27
guowei3758
Rank: 2
来 自:陕西咸阳
等 级:论坛游民
帖 子:58
专家分:72
注 册:2010-4-9
得分:20 
#include<stdio.h>
void main()
{
    int i=0,base,num[32],j;
    long int n;
    printf("Input number:");
    scanf("%ld",&n);
    printf("Input base:");
    scanf("%d",&base);
    do
    {
        num[i]=n%base;
        n=n/base;
        i++;
    }while(n!=0);
    for(j=i-1;j>=0;j--)
        printf("%d",num[j]);
}
这样就可以了,希望楼主满意
2010-05-06 20:45
咚呱咚呱
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:29
专家分:2
注 册:2010-4-13
得分:0 
回复 2楼 guowei3758
我明白了!循环条件因该是n!=0,而不是num!=0。太感谢了!!!!!!!!!
2010-05-06 21:04



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




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

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