| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 606 人关注过本帖
标题:!(a==0&&b==0)行 a!=0&&b!=0 一样吗?
只看楼主 加入收藏
d1003577678
Rank: 1
等 级:新手上路
帖 子:18
专家分:9
注 册:2014-11-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
!(a==0&&b==0)行 a!=0&&b!=0 一样吗?
#include <stdio.h>
int main()
{
    int a,b;
    while (scanf("%d%d",&a,&b)!=EOF&&!(a==0&&b==0))
        printf("%d\n",a+b);
    return 0;
}


#include <stdio.h>
int main()
{
    int a,b;
    while (scanf("%d%d",&a,&b)!=EOF&&a!=0&&b!=0)
        printf("%d\n",a+b);
    return 0;
}

输入2数之和 0 0 终止
搜索更多相关主题的帖子: include return 
2014-11-11 08:13
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
不一样。!(a&&b) == !a||!b。建议看看离散数学。

重剑无锋,大巧不工
2014-11-11 08:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
离散数学  听起来挺难

DO IT YOURSELF !
2014-11-11 08:34
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 3 楼 wp231957
要学通,哪门学科都挺难的。但掌握点基础部分还是容易的。

重剑无锋,大巧不工
2014-11-11 09:59
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:0 
这个好像是跟充分必要条件很像啊
2014-11-11 11:17
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
要学通不容易
2014-11-11 11:52
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 5 楼 书生等待
充要条件的定义即为,如果A能推导出B(记作A->B),则A称为B的充分条件,B称为A的必要条件。如果A能推导出B,同时B能推导出A(记作a<-->B),则A、B互为充要条件。

在离散数学中,“->”这个符号称作蕴涵联结词,A->B称为蕴涵式。“<-->”称为等价联结词,A<-->B称为等价式。它们是逻辑推理中很重要的运算。

重剑无锋,大巧不工
2014-11-11 12:42
d1003577678
Rank: 1
等 级:新手上路
帖 子:18
专家分:9
注 册:2014-11-9
收藏
得分:0 
回复 2 楼 beyondyf
我只是大一小菜鸟。。离散要等到大二

这两个段代码VS2010运行都对啊,不过a!=0&&b!=0 OJ判定wrong answer..

求详解。。。
2014-11-11 14:03
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:20 
回复 8 楼 d1003577678
学习这事是不用等的,想学随时可以。我上学时的课程里压根没有离散数学这门课,因为感兴趣就自己找了本书看。

回到你的问题,上面我已经说了怎么改,但你好像压根没看。再具体地说一遍吧。

1、问题有明确的结束条件,所以scanf("%d%d", &a, &b) != EOF 这个判断是不必要的,可以去掉。为了把scanf写在循环判断条件里可以使用逗号表达式。

2、!(a == 0 && b == 0) <--> a != 0 || b != 0。

综上两点,你的循环条件可以写成while(scanf("%d%d", &a, &b), a != 0 || b != 0)。

如果你还是想用scanf("%d%d", &a, &b) != EOF,那么应该写成while(scanf("%d%d", &a, &b) != EOF && (a != 0 || b != 0))。里面那个括号是必须的,因为||的优先级低于&&的优先级。

重剑无锋,大巧不工
2014-11-11 14:18
d1003577678
Rank: 1
等 级:新手上路
帖 子:18
专家分:9
注 册:2014-11-9
收藏
得分:0 
回复 9 楼 beyondyf
是我脑残了。。一开始 就把判定条件想错……

等价那个我懂。

关于自学离散没这个想法。我们这因为开学晚,课程很快,课后得复习。还有各种作业。还要ACM刷题。又在图书馆借了C标准库、C应用实例、线代辅导和一本推理小说。。。

还有就是不是我想用EOF。。而是OJ要求必须这样(我也不知道为什么)。。。

感谢版主的回复 ^_^
2014-11-11 16:14
快速回复:!(a==0&&b==0)行 a!=0&&b!=0 一样吗?
数据加载中...
 
   



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

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