一道关于C语言的问题...问第三遍了管理员不要删了求你了

来源:百度知道 编辑:UC知道 时间:2024/06/06 00:48:28
A选手说:B第二,我第三;

B选手说:我第二,E第四;

C选手说:我第一,D第二;

D选手说:C最后,我第三;

E选手说:我第四,A第一.

决赛成绩公布之后,每位选手的预测都只说对了一半,即一对一错.
本人编程实现如下:
#include<stdio.h>
void main()
{ int a,b,c,d,e;
for(a=1;a<=5;a++)
for(b=1;b<=5;b++)
if(a!=b)
for(c=1;c<=5;c++)
if((a!=c)&&(b!=c))
for(d=1;d<=5;d++)
if((a!=d)&&(b!=d)&&(c!=d))
for(e=1;e<=5;e++)
if((a!=e)&&(b!=e)&&(c!=e)&&(d!=e))

if((b=2)*(a=3)==0)
if((b=2)||(a=3)==1)
if((b=2)&&(e=4)==0)
if((b=2)||(e=4)==1)
if((c=1)&&(d=2)==0)
if((c=1)||(d=2)==1)
if((c=5)&&(d=3)==0)
if((c=5)||(d=3)==1)
if((e=4)&&(a=1)==0)
if((e=4)||(a=1)==1)
printf("\nA%d\nB%d\nC%d\nD%d\nE%d",a,b,c,d,e);

}

判断相等用“==”,不是“=”啊!
你就判断语句错了,其它没问题。
第一趟循环A从1开始,不是3。第一次循环时
A1 B2 C3 D4 E5

#include<stdio.h>
void main()
{ int a,b,c,d,e;
for(a=1;a<=5;a++)
for(b=1;b<=5;b++)
if(a!=b)
for(c=1;c<=5;c++)
if((a!=c)&&(b!=c))
for(d=1;d<=5;d++)
if((a!=d)&&(b!=d)&&(c!=d))
for(e=1;e<=5;e++)
if((a!=e)&&(b!=e)&&(c!=e)&&(d!=e))

if((b==2)&&(a!=3)||(b!=2)&&(a==3))
if((b==2)&&(e!=4)||(b!=2)&&(e==4))
if((c==1)&&(d!=2)||(a!=1)&&(d==2))
if((c==5)&&(d!=3)||(c!=5)&&(d==3))
if((e==4)&&(a!=1)||(e!=4)&&(a==1))
printf("\nA%d\nB%d\nC%d\nD%d\nE%d",a,b,c,d,e);
}

你第二个问题:

我想你是用vc运行的吧。
你程序是从a=1开始的,只是printf的页面太长了,显示不了a=1的部分。你用单步运行可以检查一下的。

你把
printf("\nA%d\nB%d\nC%d\nD%d\nE%d",a,b,c,d,e);
改成
printf("\nA%d B%d C%d D%d E%d",a,b,c,d,e);
试试