C++程序设计 判断货物真假
判断五个箱子中假货的箱子 的模拟程序;
下面是我写的程序,不知道出了什么问题;
初来乍到,望老师们指点一二
#include<iostream.h>
#include<math.h>
void main()
{
int sum,sum1,sum2,k;
int a[5];
sum1=2+4+8+16+32;
sum2=31;
cout<<"请输入称得货物重量sum:";
cin>>sum;
k=sum-sum2;
int i=5;
while(i>0)
{
if((k-2^(i-1))>=0)
{
a[i-1]=1;
k=k-2^(i-1);
}
else
{
a[i-1]=0;
}
i--;
}
for(i=0;i<5;i++)
{
if(a[i]==1)
{
cout<<(i+1)<<",";
}
}
cout<<"箱货物为真";
}
[解决办法]
把出错代码贴出来
[解决办法]
条件说清楚,怎么样才是假货,判断条件是什么,不然这变量是代表什么只有你自己清楚
[解决办法]
sum1=2+4+8+16+32;
sum2=31;
k=sum-sum2;
这3句话代表的是什么?
货物重量是什么,是代表真货一个箱子的重量,还是代表5个箱子的总重量,
[解决办法]
LZ的思路很好。换做我,我可能也想不到。
实现方法我也明白了,问题就在于C/C++的 ^操作符 不是指数运算,而是按位异或操作符。
如果想实现指数运算,用<cmath>(或<math.h>)的pow()函数。注意pow()的第一个参数必须是浮点型。
[解决办法]
[解决办法]