www.hg1088.com­h­g<PK10>四+码必+中规+律利润率的计算公式是什么?

只需一步,快速开始
后使用快捷导航没有帐号?
查看: 1417|回复: 22
为什么这里只能用if而不能用if else if else if呢?
签到天数: 27 天[LV.4]偶尔看看III
马上注册加入鱼C,享用更多服务吧^_^
才可以下载或查看,没有帐号?
本帖最后由 With_You 于
11:35 编辑
#include&stdio.h&
int main()
int a,b,c,d,t;
printf(&请输入4个整数:&&&);
& & scanf(&%d,%d,%d,%d&,&a,&b,&c,&d);
{t=a;a=b;b=t;}
& &&&else if (a&c)
&&{t=a;a=c;c=t;}&&
&&else if(a&d)
{t=a;a=d;d=t;}
else if(b&c)
{t=b;b=c;c=t;}& && &
else if(b&d)&&
{t=b;b=d;d=t;}
else(c&d)&&
{t=c;c=d;d=t;}
printf(&从小到大输出数为%d,%d,%d,%d\n&,a,b,c,d);
& && && && && &&&
这是我一开始编写的程序,我一运行系统就提示C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\gbgbg\gbgbg.c(18) : error C2143: syntax error : missing ';' before '{'
执行 cl.exe 时出错.但我明明一个分号都没漏。 接着我看标准答案,答案上没有else,全部都写的是if。程序如下:
#include&stdio.h&
int main()
int a,b,c,d,t;
printf(&请输入4个整数:&&&);
& & scanf(&%d,%d,%d,%d&,&a,&b,&c,&d);
{t=a;a=b;b=t;}
& &&&if (a&c)
&&{t=a;a=c;c=t;}&&
{t=a;a=d;d=t;}
{t=b;b=c;c=t;}& && &
{t=b;b=d;d=t;}
{t=c;c=d;d=t;}
printf(&从小到大输出数为%d,%d,%d,%d\n&,a,b,c,d);
& && && && && &&&
这样以后就对了,为什么这里只能用if而不能用else呢?
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 479 天[LV.9]以坛为家II
楼主把else后面的(c&d)去掉程序就可以正常运行
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 737 天[LV.9]以坛为家II
else 之后不能加表达式
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 7 天[LV.3]偶尔看看II
程序目的为从大到小排序,首先从a开始,将a与其他数一次比较,若a大,则进行下一次比较,若a小,两数交换,a为两数中较大数,经过一轮比较,a为最大数,然后将b与剩余数比较,也是这个原理,b为剩余数中最大数,依次比较,实现排序。
如果用if else if,else if是再if不成立的基础上进行判断的,也就是说第二个式子是啊a&b时判断执行,其他的都是再前几个式子不成立的基础上判断执行的,逻辑错误,无法实现排序
除了else格式,楼主最好在函数为加上return 0;
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 27 天[LV.4]偶尔看看III
style?b? 发表于
程序目的为从大到小排序,首先从a开始,将a与其他数一次比较,若a大,则进行下一次比较,若a小,两数交换, ...
嗯嗯,明白了,意思就是if格式就是并列的逻辑,但if else if 就是选择的逻辑,这里要用并列的,所以只能用if,对吧,谢谢了!
还有就是最后的那个return 0有什么用呢?
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 5 天[LV.2]偶尔看看I
楼上的都已经说完了 我就是来看看的
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 7 天[LV.3]偶尔看看II
With_You 发表于
嗯嗯,明白了,意思就是if格式就是并列的逻辑,但if else if 就是选择的逻辑,这里要用并列的,所以只能用 ...
return 语句是程序控制权返回到调用它的方法,对于main来说就是返回调用它的操作系统。。return 0;设置返回值为0,开头int main中int指明main函数返回值为整形,c99标准建议把main函数设为int型,在函数最后设置一个return 0,当函数正常结束时,main返回值为0,运行出错时,将会返回一个非0的整数,程序员可以利用操作指令检查main的返回值,从而判断main函数是否正常执行
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 256 天[LV.8]以坛为家I
本想答的,结果大家都已经说了。。。。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 27 天[LV.4]偶尔看看III
style?b? 发表于
return 语句是程序控制权返回到调用它的方法,对于main来说就是返回调用它的操作系统。。return 0;设置返 ...
嗯,知道了,但我怎么才知道它返回的不是0呢?
我需要什么操作指令来检查呢?
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 27 天[LV.4]偶尔看看III
my_angel 发表于
本想答的,结果大家都已经说了。。。。
嘿嘿,灰常灰常谢谢你!
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 256 天[LV.8]以坛为家I
With_You 发表于
嘿嘿,灰常灰常谢谢你!
不用,我又没说什么。。。你还是多多打基础语法吧,犯这样的错事非常不应该的。。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 56 天[LV.5]常住居民I
From FishC Mobile
因为,ese if后不能加表达式。
还有,int main()在结尾的大括号前要加上
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 56 天[LV.5]常住居民I
From FishC Mobile
With_You 发表于
嗯,知道了,但我怎么才知道它返回的不是0呢?
我需要什么操作指令来检查呢?
多看甲鱼的视频,留意他叫你特别要注意的地方。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 7 天[LV.3]偶尔看看II
With_You 发表于
嗯,知道了,但我怎么才知道它返回的不是0呢?
我需要什么操作指令来检查呢?
我是在代码中return 0;之前加一句system(&echo %ERRORLEVEL%&);,在编译器中运行时就会在最后显示main的返回值。调试时用,用完删掉就行。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 148 天[LV.7]常住居民III
加油加油。。。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 27 天[LV.4]偶尔看看III
style?b? 发表于
我是在代码中return 0;之前加一句system(&echo %ERRORLEVEL%&);,在编译器中运行时就会在最后显示main的 ...
嗯嗯,这下明白了,谢谢谢谢!
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 27 天[LV.4]偶尔看看III
style?b? 发表于
我是在代码中return 0;之前加一句system(&echo %ERRORLEVEL%&);,在编译器中运行时就会在最后显示main的 ...
我囧了。我用这个方法木有显示main返回的值,而是这样
rfffd.jpg (6.13 KB, 下载次数: 0)
09:00 上传
,这是肿么了?
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 7 天[LV.3]偶尔看看II
本帖最后由 style?b? 于
13:43 编辑
system(&echo %ERRORLEVEL%&);
echo后面空格,你复制进去试试,我的可以。你少打了个%。:sweat:
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 7 天[LV.3]偶尔看看II
本帖最后由 style?b? 于
11:09 编辑
sorry 忘了告诉你&&#include&stdlib.h&,导入这个头文件,system命令才能用
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 27 天[LV.4]偶尔看看III
style?b? 发表于
sorry 忘了告诉你&&#include,导入这个头文件,system命令才能用
#include&stdio.h&
#include&math.h&&&
#include&stdlib.h&
int main()
&&int sign=1;
&&double pi=0.0,n=1.0,term=1.0;
& &&&while(fabs(term)&=1e-6)
& &term=sign/n;
&&pi=pi*4;
&&printf(&pi=%10.8f\n&,pi);
&&system(&echo %ERRORLEVEL&);
&&return 0;
.jpg (13.18 KB, 下载次数: 0)
11:29 上传
你看我添加了但还是出来的是这个,这到底是肿么了?
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
•••(
Powered byif else是不是好的编程习惯? - 开源中国社区
当前访客身份:游客 [
当前位置:
& & 大概是这样子的,我在Android项目与服务端通信使用的是JSON来进行数据传输,使用了这个java-json项目&。因为考虑到服务器可能出现各种问题,所有进行了很多判断,防止在Android端异常。于是就有了如下的代码段
& & 抱歉没有注释... & &&
& & 想问问大家,这么多的if else的判断,到底是保证了程序的健壮性呢?还是本身代码结构有问题?或者有其他更优的解决方案?
---------------问题补充---------------
:同意大家的说法,确实极端了不好不要为了设计而设计,过度设计不好。#1的说的方法最佳也在尝试 : ) [ 21:57]
:0. 感谢大家的参与讨论,这里进行一个小小的总结,总结不好还请指出
:1. 对于if else需要分几方面来看待:面向对象编程和面向过程编程,针对实现还是针对业务,当然还有不要过度设计;另外还有一些编程风格,当然这还是不同人的不同风格
:2. 分点来说就是,如果是我们的代码,使用面向对象的编程思想,if else就完全可以用多态来实现了,同时可以配合设计模式来进行,这样对业务来说也是更加清晰
:3. 如果是面向过程编程,个人还是觉得switch的结构性和效率比if else跟好一些,在自己的代码中,如果超过3个if判断,那么就是使用switch来替换;另外还有的是,if else更适合判断异常,而不适合判断业务,对于业务的话,应该面向对象编程,对业务逻辑进行封装
:4. 关于设计的问题,设计当然可以设计,适可而止就好,如果本来是一个小的问题,被反复设计封装,不仅性能下来了,逻辑反而不清晰,还是那句:不要过度设计,度,自己把握
:5. 编程风格呢,把所有异常情况放在前面先判断,然后再最后的时候才是正确的情况,这里新了解到一个名词啊,叫做防御式编程
:最佳答案给了@jQer,i like it,面向对象和针对业务编程~
:另外,程序员的世界是从0开始计数的。=
共有21个答案
<span class="a_vote_num" id="a_vote_num_
<span class="a_vote_num" id="a_vote_num_
引用来自“xsong”的答案正确的逻辑只有一个, 放在最后, if 前面码的整整齐齐的,错误逻辑跳出。嗯,这就是所谓的防御式编程。
--- 共有 2 条评论 ---
喜欢这种方式 -& 防御式的,虽然有时候用多了是自己没事找事干
(3年前)&nbsp&
yes,这个名词用的好啊~~
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
这样写,下次再看的时候,很头疼。
--- 共有 1 条评论 ---
已经头大了。。。
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
if else 条理清晰,性能卓越,何罪之有
--- 共有 1 条评论 ---
嗯...性能和结构型switch是不是会更好一些?
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
这个不能说if的问题吧&&&&主要看你怎么用,用if来判断异常,比如判断null,应该没啥问题啊,但是用if来判断业务状态的话,的确对于代码和设计来说,应该都是不太好的习惯吧,毕竟业务是会变化的……
--- 共有 1 条评论 ---
对,我赞同,if不适合来判断业务
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
没办法,这个不是编程习惯的问题。实际情况下,纠结太多设计问题,开发会受阻。
--- 共有 1 条评论 ---
刚开始的时候敲代码很爽,想到什么写什么,if a then b else c,很多代码都是这个结构下来的,后来加需求,没关系,继续添加if else,等到后面需求改的次数多的时候,我就头大了..结构好乱
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
我之前看过一篇国外的牛人的博文,if else是效率很低很低的结构,完全可以抽象出来,再抽象出来。
--- 共有 1 条评论 ---
嗯嗯,这大概是前面仁兄说的OO多态,或者“状态模式”(我暂时不了解这个t_t)
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
层数太多就不好了,你这样说太绝对了。
--- 共有 1 条评论 ---
其实也只是担心层数过多了后期维护起来会比较困难,而且如果业务经常变动的话。。。唉,我已经心累了。=
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
如果要验证json格式是否正确,可以去使用json schema validator
--- 共有 1 条评论 ---
3ks,我去了解了解~
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
理想易懂的程序应该是这样结构的:
//优先处理错误逻辑
if error1:
& & throw exception&
if error2:
if error3:
& & return false
//正确逻辑
return true
--- 共有 1 条评论 ---
嗯嗯,把正确的逻辑放在最后却是挺好的~多个if语句层叠其实可以改进为switch~
(3年前)&nbsp&
更多开发者职位上
有什么技术问题吗?
就是我啊的其它问题您的赞赏,是对我创作的最大鼓励。|赞赏
收藏已收藏 | 57赞 | 30
分享到微信扫码分享到微信
投稿、稿件问题联系Q:
1540篇作品18.4m阅读总量
热门问题12345678910

我要回帖

更多关于 1088 的文章

 

随机推荐