标题:背包算法的问题
取消只看楼主
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
结帖率:100%
已结贴  问题点数:20 回复次数:3 
背包算法的问题
今天在论坛上看见有个人在讨论书包算法,于是好奇就也做了个(反正以后也要学的,嘿嘿!)已经知道有面值为: 100,50,30,10的钱,如输入:150,就输出100和50。输入280就输出2个100元,一个50元,3个10元,以此类推。。。可写出来的总是错错错!!代码如下:
#include<stdio.h>
void ok(int mianzhi,int f)
{
    printf("%d个%d元 ",f,mianzhi);
}
int main(void)
{
    int a,b[4]={100,50,30,10},f;
    scanf("%d",&a);
    for(f=0;f<4;f--)
    {
        if(a<b[f])
        {    if(f==3)
                ok(a,1);
            else
                continue;
        }
        else if(a>b[f])
        {
            ok(b[f],a/b[f]);
            if(a%b[f]==0)
                break;
            else
            {
                a=a%b[f];
                continue;
            }
            
        }
        else if(a==b[f])
        {
            ok(b[f],1);
            break;
        }
        
    }
    getch();
    return 0;
}
逻辑混乱 代码有点乱,可以的话帮忙修改下~~.错误的地方是输入100结果正确,输入120.输出的结果要我喷血!!乱七八糟的!
都帮忙帮忙啦~~~不过我写这个程序也是为了帮别人。。哈哈!!
搜索更多相关主题的帖子: 好奇 书包 include 
2011-09-22 16:41
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
得分:0 
回复 2楼 statics
........我太粗心了..改改
2011-09-22 18:11
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
得分:0 
真的不可大意啊,就错了那么一点点,大家千万别和我一样啊....,现在搞定了,谢谢楼上的啦
2011-09-22 18:15
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
得分:0 
回复 13楼 laoyang103
真的越弄越不懂了,有些函数重来都没看到过,你写的,我收下了 以后在看看~~谢啦
2011-09-23 16:08



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




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

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