问一道DEV-C++ 编程的问题!!!!!!!!!!!急!!!!!急急!!

来源:百度知道 编辑:UC知道 时间:2024/05/31 11:17:23
请高手帮忙看一下我编的哪里错了,我水平比较低,只学到了“for循环”部分,所以改进的方法最好不要太高深。谢谢各位了。

【题目描述】:有A、B、C、D、E五本书,要分给张、王、刘、赵、钱五位同学,每人只能选一本,事先每人把自己喜爱的书填于下表,编程找出让每个人都满意的方案。
A B C D E
张(h) √ √
王(w) √ √ √
刘(l) √ √
赵(z) √ √ √
钱(q) √ √

【我编的】:#include <iostream>
using namespace std;
int main()
{
int h,w,l,z,q;
for(h=1;h<=5;h++)
if(h==3||h==4) //if 可不可以加在这里?
for(w=1;w<=5;w++)
if(w==1||w==2||w==5)
for(l=1;l<=5;l++)
if(l==2||l==3)
for(z=1;z<=5;z++)
if(z==1||z==2||z==3)

if(q==10-h-w-l-z)
cout<<h<<w<<l<<z<<q<<endl;
system("pause");
}
有个地方打错了,他们各自喜欢的书是:
张 C或者D
王 A或者B或者E
刘 B或者C
赵 A或者B或者D
钱 B或者E

q的值你都没有设,怎么去判断q==10-h-w-l-z啊

改了一下:结果中0表示A,1表示B,依次类推。

#include <iostream>
using namespace std;
int main()
{
int h,w,l,z,q;
for(h=0;h<5;h++)
if(h==2||h==3) //if 可不可以加在这里?
for(w=0;w<5;w++)
if(w==0||w==1||w==4)
for(l=0;l<5;l++)
if(l==1||l==2)
for(z=0;z<5;z++)
if(z==0||z==1||z==3)
if(1==10-h-w-l-z||4==10-h-w-l-z)
cout<<h<<" "<<w<<" "<<l<<" "<<z<<" "<<10-h-w-l-z<<endl;
system("pause");
}

很乱,少了很多花扩号。