c语言编程题,不会做,求各位高手帮帮忙
某参观团按以下限制条件A,B,C,D,E五个地方选定若干参观点:1)如果去A地,则必须去B地;2)D和E两地中只能去一地;3)B和C两地中只能去一地;4)C和D两地要么都...
某参观团按以下限制条件A,B,C,D,E五个地方选定若干参观点: 1)如果去A地,则必须去B地; 2)D和E两地中只能去一地; 3)B和C两地中只能去一地; 4)C和D两地要么都去,要么都不去; 5)如果去E地,则必须去A和D地;问参观团能去哪几个地方?
展开
1个回答
展开全部
#include <stdio.h>
void sort(int place[])
{
int i,j,k,flag;
flag=1;
while(flag)
{
flag=0;
if(place[0]==1)
{
if(place[1]!=1)
{
place[1]=1;
flag=1;
}
}
if(place[1]==1)
{
if(place[2]!=0)
{
place[2]=0;
flag=1;
}
}
else if(place[2]==1)
{
if(place[1]!=0)
{
place[1]=0;
flag=1;
}
}
if(place[3]==1)
{
if(place[4]!=0)
{
place[4]=0;
flag=1;
}
}
else if(place[4]==1)
{
if(place[3]!=0)
{
place[3]=0;
flag=1;
}
}
if(place[4]==1)
{
if(place[0]!=1&&place[3]!=1)
{
place[0]=1;
place[3]=1;
flag=1;
}
}
}
}
main()
{
int place[5]={1,1,1,1,1};//假定全部都能去
int i,j,s,n,m;
sort(place);
for(j=0;j<5;j++)
{
if(place[j]==1)
printf("%c ",'A'+j);
}
printf("\n");
}
void sort(int place[])
{
int i,j,k,flag;
flag=1;
while(flag)
{
flag=0;
if(place[0]==1)
{
if(place[1]!=1)
{
place[1]=1;
flag=1;
}
}
if(place[1]==1)
{
if(place[2]!=0)
{
place[2]=0;
flag=1;
}
}
else if(place[2]==1)
{
if(place[1]!=0)
{
place[1]=0;
flag=1;
}
}
if(place[3]==1)
{
if(place[4]!=0)
{
place[4]=0;
flag=1;
}
}
else if(place[4]==1)
{
if(place[3]!=0)
{
place[3]=0;
flag=1;
}
}
if(place[4]==1)
{
if(place[0]!=1&&place[3]!=1)
{
place[0]=1;
place[3]=1;
flag=1;
}
}
}
}
main()
{
int place[5]={1,1,1,1,1};//假定全部都能去
int i,j,s,n,m;
sort(place);
for(j=0;j<5;j++)
{
if(place[j]==1)
printf("%c ",'A'+j);
}
printf("\n");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询