| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 489 人关注过本帖
标题:希望大家帮忙改下错啦
只看楼主 加入收藏
liu200909
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:56
专家分:54
注 册:2009-9-20
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:4 
希望大家帮忙改下错啦
题目是这样的:将十进制正整数换成K(2<=K<=9)进制,并按位输出!
eg: 输入 8 2 ,则应输出 1000
#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");
}

谢谢大家能帮我找下错误,使程序能达到想要的结果!
更希望各位大侠能帮我解释下那程序的思想,本人不甚感激!
搜索更多相关主题的帖子: 十进制 正整数 
2010-03-25 18:22
xichong
Rank: 7Rank: 7Rank: 7
来 自:四川南充
等 级:黑侠
威 望:2
帖 子:146
专家分:582
注 册:2009-6-10
收藏
得分:10 
#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-1; 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");
}
2010-03-25 18:30
xichong
Rank: 7Rank: 7Rank: 7
来 自:四川南充
等 级:黑侠
威 望:2
帖 子:146
专家分:582
注 册:2009-6-10
收藏
得分:0 
该程序的思想主要是利用了辗转相除法。先算出十进制正整数除以K,记录下余数,再利用上一次的商作为新的被除数来除以K,依次重复...只到商为0时为止;再将所有的余数逆序输出即为所求!
2010-03-25 18:36
liyang04300
Rank: 2
等 级:论坛游民
帖 子:75
专家分:94
注 册:2010-3-17
收藏
得分:10 
不是辗转相除法!是一种循环相除,根据十进制转换成二进制的方法,用程序描述出来!修改的正确,逆序输出这种编程思想个人觉得非常好!
2010-03-25 22:08
liu200909
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:56
专家分:54
注 册:2009-9-20
收藏
得分:0 
嗯 那是一种方法。谢谢!
下面还有一种!
#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-1]);
}
main()
{
    int  b, n;
    printf("\nPlease enter a number and a base:\n");
    scanf("%d%d", &n, &b);
    fun(n, b);
    printf("\n");
}
2010-03-27 10:42
快速回复:希望大家帮忙改下错啦
数据加载中...
 
   



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

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