| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1659 人关注过本帖
标题:[求助]关于if语句的一个小问题
只看楼主 加入收藏
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 

对不起,我刚运行了9楼的程序,发现有问题(刚发贴时没运行).现在我把问题找出来了,再发一次代码.

#include<stdio.h>

int
main(void)
{
int A,B,C,D,E; //定义A,B,C,D,E五个变量;
for(A=1;A>=0;A--) //用穷举法来判断,1表示参加,0表示不参加;
for(B=1;B>=0;B--)
for(C=1;C>=0;C--)
for(D=1;D>=0;D--)
for(E=1;E>=0;E--)
if((A+B==2||A==1)&&B+C==1&&(C+D==2||C+D==0)&&D+E>1&&(E==0||A+D+E==3))
{
printf("A will %s attend.\n",A?"":"not"); //用表达式(X?Y:Z)打印;
printf("B will %s attend.\n",B?"":"not");
printf("C will %s attend.\n",C?"":"not");
printf("D will %s attend.\n",D?"":"not");
printf("E will %s attend.\n",E?"":"not");
}
return 0;

}


我的原则很简单:不做不喜欢的事!
2006-04-20 19:11
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 

现在运行正确了不过发贴时候代码格式怎么乱了???


我的原则很简单:不做不喜欢的事!
2006-04-20 19:12
errorer
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-4-19
收藏
得分:0 

楼上的是正确的~~~一楼楼主没想过如果程序有很多个结果的话会怎样呀,你那只能得到一个结果(暂且不讨论他的题目是否一定有结果哟~~呵呵)~~~~因此不能运行塞~~~~


思想有多远,就能走多远!
2006-04-20 22:32
errorer
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-4-19
收藏
得分:0 
printf("A will %s attend.\n",A?"":"not"); //用表达式(X?Y:Z)打印;
高深~~~谢谢

思想有多远,就能走多远!
2006-04-20 22:35
提灯寻影
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-4-7
收藏
得分:0 
以下是引用龙轩v亚风在2006-4-20 18:22:00的发言:
if (a[0]==1)
a[1]=1;
if (a[1]==1)
a[2]=0;
else
a[2]=1;
if (a[2]==1)
a[3]=1;
else
a[3]=0;
if (a[3]==1)
a[4]=0||a[4]=1;
else
a[4]=1;
if (a[4]=1)
a[0]=1;
a[1]=1;

1为去的 0为不去的 我做了大概 判断
看看是不是 这个意思

你的代码我整理了一下,不过有点小问题哦,可以解决一下吗?

#include<stdio.h>

main(void)
{
int a[5],i;
if (a[0]==1)
a[1]=1;
if (a[1]==1)
a[2]=0;
else
a[2]=1;
if (a[2]==1)
a[3]=1;
else
a[3]=0;
if (a[3]==1)
a[4]=1||a[4]=0;
else
a[4]=1;
if (a[4]=1)
{
a[0]=1;
a[3]=1;
}
for(i=0;i<5;i++)
{
printf("%d",a[i]);
}

}


提示d:\Documents and Settings\Lovo\My Documents\Visual Studio Projects\64\64.cpp(17): error C2106: “=” : 左操作数必须为 l 值,我不知道哪里错了。。。。。。


2006-04-21 00:07
提灯寻影
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-4-7
收藏
得分:0 
以下是引用errorer在2006-4-20 22:32:00的发言:

楼上的是正确的~~~一楼楼主没想过如果程序有很多个结果的话会怎样呀,你那只能得到一个结果(暂且不讨论他的题目是否一定有结果哟~~呵呵)~~~~因此不能运行塞~~~~

这应该是个数学题吧,我认为,就是说,结果应该只会有一个,至少从这题来说。因为,必须5个条件都符合才成立。


2006-04-21 00:10
提灯寻影
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-4-7
收藏
得分:0 
以下是引用lj_860603在2006-4-20 19:11:00的发言:

对不起,我刚运行了9楼的程序,发现有问题(刚发贴时没运行).现在我把问题找出来了,再发一次代码.

#include<stdio.h>

int
main(void)
{
int A,B,C,D,E; //定义A,B,C,D,E五个变量;
for(A=1;A>=0;A--) //用穷举法来判断,1表示参加,0表示不参加;
for(B=1;B>=0;B--)
for(C=1;C>=0;C--)
for(D=1;D>=0;D--)
for(E=1;E>=0;E--)
if((A+B==2||A==1)&&B+C==1&&(C+D==2||C+D==0)&&D+E>1&&(E==0||A+D+E==3))
{
printf("A will %s attend.\n",A?"":"not"); //用表达式(X?Y:Z)打印;
printf("B will %s attend.\n",B?"":"not");
printf("C will %s attend.\n",C?"":"not");
printf("D will %s attend.\n",D?"":"not");
printf("E will %s attend.\n",E?"":"not");
}
return 0;

}


非常不错,特别是最后的输出,学习了!!!
不过,我觉得最后的return 0 ,会不会多此一举,指点一下。。。


2006-04-21 01:26
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
那句可以不要,但最好加上去,严谨!

我的原则很简单:不做不喜欢的事!
2006-04-21 10:26
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用lj_860603在2006-4-21 10:26:00的发言:
那句可以不要,但最好加上去,严谨!

不是严谨
是专业
大多书上都说那样写显的比较专业
显的你知道main()函数是int型的

当然我从来不加

还有就是我感觉做这种题时间长拉你的编程水平会下降的
程序是为了解决那些比较大的数据或者是比较复杂的思维问题
并且要有较强的扩展性和有广泛(数据变化)应用性
这种题太死拉 要解决还不让自己的大侄子做呢!
还有就是这题没办法数据扩展,只能处于ABCDE的问题上
不能扩展到N个数据的逻辑问题
所以以后还是少做这种题为好
要不弄不好会影响你对编程的理解!

2006-04-21 13:13
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
这种题目以前出现过,你应该先搜索下.

对不礼貌的女生收钱......
2006-04-21 16:12
快速回复:[求助]关于if语句的一个小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034155 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved