| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1421 人关注过本帖
标题:哥哥们,帮帮我吧,纠结一个程序。。。纠结死了,关于C语言二进制的
只看楼主 加入收藏
nzxiansheng
Rank: 2
等 级:论坛游民
帖 子:36
专家分:56
注 册:2012-5-20
收藏
得分:0 
以下是引用beyondyf在2012-7-7 22:05:20的发言:

再送楼主一段完成同样功能的代码以借鉴学习。#include
int main()
{
    int n, i;
    for(n = 0; n < 10; n++, puts(""))
    for(i = 19; i >= 0; printf("%d", (n >> i--) & 1));
    return 0;
}
真简短!  值得学习
2012-07-07 22:19
女生也编程
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-7-7
收藏
得分:0 
回复 14楼 lonmaor
太感谢了 但是。。 又出新的问题了  这么简单的程序都问题不断
2012-07-07 22:26
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
呵呵,几个版主都瞄着你的贴子呢。快发问题,看谁手快!

重剑无锋,大巧不工
2012-07-07 22:28
女生也编程
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-7-7
收藏
得分:0 
这个问题很复杂了
2012-07-07 22:31
女生也编程
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-7-7
收藏
得分:0 
我发了
2012-07-07 22:31
女生也编程
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-7-7
收藏
得分:0 
现有 20件物品,体积和价值如下:
 
体积      20      23      25       28      31      42       53      61     62      70
价值    1.10    1.46    1,47    1,83    1.84    1.67    2.08    3.70    3.70    4.25
  74    83       97      98     102     112      118     125     128    130
4.28    5.06    5.61    5.80    6.10    6.60    6.84    7.41    7.42    7.45


一只箱子容积为600,问怎么装可使物品价值最大?
写成0-1规划形式。
穷举法求解(尽量减少计算次数)。
2012-07-07 22:32
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
只要穷举法,稍等。。。

重剑无锋,大巧不工
2012-07-07 22:34
女生也编程
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-7-7
收藏
得分:0 
我做的第二问  用C语言实现穷举法:
程序如下:
#include<stdio.h>
void main()
{
 int k,i,n=2;
 int j=19;
 int a[20];
 float maxp=0,maxv=0,mp=0,mv=0;
float v[20]={20,23,25,28,31,42,53,61,62,70,74,83,97,98,102,112,118,125,128,130};
float p[20]={1.10,1.46,1.47,1.83,1.84,1.67,2.08,3.70,3.70,4.25,4.28,5.06,5.61,5.80,6.10,6.60,6.84,7.41,7.42,7.45};
  
for(n=0;n<=1048576;n++)
{
    j=19;
   for(i=0;i<20;i++)
    {   
       a[i]=(n>>j)&1;
        j--;
    }
/* for(i=0;i<20;i++)
 {
printf("%d   ",a[i]);
 }*/
for(k=0;k<20;k++)
{
if(maxv+v[k]<=600)
{
    maxp=p[k]*a[k]+maxp;
    maxv=v[k]*a[k]+maxv;
/*printf("%f  %f\n",maxp,maxv);*/

}
 if(maxp>mp)
 {
 mp=maxp;
 mv=maxv;
 }
}
}
 printf("%f  %f\n",mp,mv);

}
2012-07-07 22:34
女生也编程
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-7-7
收藏
得分:0 
得到的结果是:  34.8  599  
但是我用Lingo求解得到的结果却是:
图片附件: 游客没有浏览图片的权限,请 登录注册
2012-07-07 22:37
女生也编程
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-7-7
收藏
得分:0 
我还是更相信 Lingo 所以估计这个C程序 有问题
2012-07-07 22:37
快速回复:哥哥们,帮帮我吧,纠结一个程序。。。纠结死了,关于C语言二进制的
数据加载中...
 
   



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

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