c++求看看这个idea if for 代码折叠怎么回事……if条件

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
问题:现定义long long a,b,c ,比较a+b与c 的大小关系,原代码如下:
#include&stdio.h&
int main(){
int T,i = 1;
long long a,b,c,
scanf("%d",&T);
while(T--){
scanf("%lld%lld%lld",&a,&b,&c);
printf("a+b:%lld\n",a + b);
//需要把a+b放入res中再与c比较,否则会出现错误,为什么?
res = a+b;
if(a & 0 && b & 0 && res & 0)
printf("Case #%d: true\n",i);
else if(a & 0 && b & 0 && res &= 0)
printf("Case #%d: false\n",i);
else if(res & c)
printf("Case #%d: true\n",i);
printf("Case #%d: false\n",i);
要像上面这样写才可以,如果if中的判断条件不用res,而是直接用a+b和c比较,比如写成if( a+b &c),在某些情况下判断出错,想请教大家在什么情况下以及为什么会这样?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
a + b的和过大时,发生溢出了,这里的long long 就是signed long long,溢出之后,按照long long的位数截断,然后再变成十进制数,就可能出现变成负数的情况啊,然后就出错了吧。
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。Hey,guy投稿:43粉丝:318分享3dynmicweibozoneqqbaidu将视频贴到博客或论坛视频地址复制Flash地址复制Html地址复制微信扫一扫分享收藏7硬币3稍后看马克一下~用手机看转移阵地~用或其他应用扫描二维码手机下视频请使用扫码若未安装客户端,可直接扫此码下载应用看过该视频的还喜欢miniOFF在C++++中有很多用计算表达式做为条件表达式的例如:if(a=b+c),if(m++).i&a+=3?1:0,还有很多用计算表达式做为数组或向量的下标例如:a[i++],if(a[i=(i+1)%m]),下面问题:计算表达式是在之前做计算呢还是在之后做计算?
m++和i++是之后计算,其他是之前计算
*.h在C语言中叫做“头文件”。每个头文件包含了一类函数,实现不同的功能,不需要开发人员自行编写相关功能函数,提高了开发效率。例如stdio.h就是标准输入输出...
无符号就是没有减号.
比如:3, 4, 5, 6, 7 ,都是Unsigned [int],无符号的基本整型.
而-3 , -4 , -...
答: 第一处错误的确如楼上所说,是因为数据类型不明确。由于1.35和2.78会被默认为double型而非float型,而你并没有提供含有double型输入参数的dis...
答: ?W?C的?
必看The C Programming Language
Data Structures and Algorithm Analysis in C
答: 到这里下载Visual C++ 的库组件(上方有个“下载”按钮)。
安装后再试。
另,机器的用户名是中文也不行。在控制面板里改中文名为英文名。
大家还关注
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415C/C++ 中怎样优雅的写多判断 if 语句?- 百度派
{{ mainData.uname }}
:{{ mainData.content }}
{{ prevData.uname }}
:{{ prevData.content }}
{{ mainData.uname }}
:{{ mainData.content }}
0 || contentType !== 1" class="separate-line">
:{{ item.content }}
C/C++ 中怎样优雅的写多判断 if 语句?
问题说明(可选):
扫一扫分享到微信
优雅用在此处不是很好理解,要先了解if -else为什么我们写的代码是if -else?程序员一定经历过这样的场景:刚开始编写自己的代码是非常简洁、清晰的逻辑和功能流线,而不是一个if - else,而是使用快速变化的...
优雅用在此处不是很好理解,要先了解if -else为什么我们写的代码是if -else?程序员一定经历过这样的场景:刚开始编写自己的代码是非常简洁、清晰的逻辑和功能流线,而不是一个if - else,而是使用快速变化的代码逻辑和完善的业务:例如需要键入引用和值判断。我将告诉你这个物体是否为空;不同的类型执行不同的进程。出生的具体实现不断添加如果其他——处理,渐渐地,代码变得越来越大,功能越来越多,文件行快速突破数千行,维护难度越来越大,到后期达到了一个难以维护的状态。事实上,回过头看自己的代码,编写非if - else在两个场景之外:异常逻辑处理和不同的状态处理。两者之间的主要区别是异常逻辑处理表明只有一个分支是正常的,所有分支都是正常的进程。代码if - else代码的缺点是什么?最大的问题是代码很复杂,维护也很糟糕,很容易导致bug。如果用- else表示If分支和else分支的值是相等的,但大多数情况下是不相等的,并且很容易理解和理解困难。有什么好的方法来优化吗?如何重构?当您重构if - else时,原则是在最外层保持正常的进程代码。这意味着,如果您可以编写一个if - else语句,那么您必须尽量使主干代码尽可能正常,以避免嵌套太深。实现的方法是:减少嵌套,删除临时变量,条件返回判断,并合并条件表达式等。
扫一扫分享到微信
首先打开C-Free5.0,然后我们建立if.c文件,然后我们继续输入一般的C语言的基础格式,注意格式缩进。首先先定义两个数值不同的整数。 int a=5,b=10;
从上面我们一眼就看出来是10&5 所以是b大。那我们怎么来让程序帮我们判读呢,我们继续输入:
首先打开C-Free5.0,然后我们建立if.c文件,然后我们继续输入一般的C语言的基础格式,注意格式缩进。首先先定义两个数值不同的整数。 int a=5,b=10;
从上面我们一眼就看出来是10&5 所以是b大。那我们怎么来让程序帮我们判读呢,我们继续输入:
int a=5,b=10;
printf(&a比b大\n&);
printf(&b比a大\n&);
扫一扫分享到微信
C/C++ 中怎样优雅的写多判断 if 语句?
,才能进行回答
一个问题只能回答一次,请&nbsp点击此处&nbsp查看你的答案
3人关注了此问题}

我要回帖

更多关于 jquery的if else代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信