vc++求救,我错在哪啊?

来源:百度知道 编辑:UC知道 时间:2024/05/17 02:13:28
我不明白第12行开始是怎样错的------

题目:现有巨大,大,中,小4种规格的容器,它们分别盛装50个,20个,5个,1个都佛尼。编写程序,读入要运输的都佛尼数目,求出每种规格的容器需要多少个,条件是容器数目和浪费的空间最小。请分别用3,18,48,78和10598作为输入量来运行程序。

#include <iostream>
#include <string>
using namespace std;
int main()
{
double A=50,B=20,C=5,D=1;//依次为 巨大 大 中 小
cout <<"\n请输入都佛尼个数S:";
double S;
cin >>S;

double X,Y,Z,M; //依次为 巨大 大 中 小的个数
double X=S/A,
Y=S/A%B,
Z=(S/A%B)%C,
M=((S/A%B)%C)%D;
cout <<"\n所需要巨大容器个数是:"<<X <<"\n所需要大容器果树是:"<<Y
<<"\n所需要中容器个数:"<<Z <<"\n所需要小容器个数是:"<<M;
return 0;
}

下面是错误信息:

error C2086: 'X' : redefinition
cpp(12) : error C2086: 'Y' : redefinition
cpp(13) : error C2296: '%' : illegal, left operand has type 'double'
cpp(1

// double X,Y,Z,M; //依次为 巨大 大 中 小的个数
//上面这句与下面重复定义了.注释掉.
你的double类型都改为int就行了.容器个数怎么会是浮点类型呢?
你没用到头文件math.h里边的函数,不用加这个头文件.
string这个头文件也没用.删去这个多余的头文件

今天帮你修改一下:
#include <iostream>

using namespace std;
int main()
{
int A=50,B=20,C=5,D=1;//依次为 巨大 大 中 小
cout <<"\n请输入都佛尼个数S:";
int S;
cin >>S;

int X=S/A, //依次为 巨大 大 中 小的个数
Y=S/A%B,
Z=(S/A%B)%C,
M=((S/A%B)%C)%D;
cout <<"\n所需要巨大容器个数是:"<<X <<"\n所需要大容器果树是:"<<Y
<<"\n所需要中容器个数:"<<Z <<"\n所需要小容器个数是:"<<M;
return 0;
}

1.double X,Y,Z,M; //依次为 巨大 大 中 小的个数
double X=S/A,
这里X被定义了两次。
2.你把变量定义成double,完全没必要,整形就可以了,而且这个程序也没有必要用到double,%不能用在double的操作。

3.double X=S/A,
Y=S/A%B,
Z=(S/A%B)%C,
M=((S/A%B)%C)%D;
这是一条语句,因为前面是用逗号结束的,其实这是在重新定义这