3.if...elseif语句 实际应用中常常面对更多的选择,这时,将if...else扩展一下,就得到if...elseif结构,其一般形式为: if<表达式1>
语句1 elseif<表达式2> 语句2 elseif<表达式3> 语句3 else语句4 对应的流程图见图3-4。  [例3-7]货物征税问题,价格在1万元以上的征5%,5000元以上1万元以下的征3%, 1000元以上5000以下的征2%,1000元以下的免税,读入货物价格,计算并输出税金。 分析:读入price,计算tax,这是一个较复杂的分支结构程序设计(应注意避免重复征税)。 假定货物的价格在1万元以上,征税应分段累计,各段采用不同税率进行征收。 算法:若price>=10000 则tax=0.05*(price-10000);price=10000; 否则,若price>=5000 则tax=0.03*(price-5000)+tax;price=5000; 否则,若price>=1000 则tax=0.02*(price-1000)+tax;price=1000; 程序如下: #include<stdio.h> main() { floatprice,tax=0; printf("inputprice:"); scanf("%f",&price); if(price>=10000.0) { tax=0.05*(price-10000)+tax;price=10000; } if(price>=5000.0) { tax=0.03*(price-5000)+tax;price=5000; } if(price>=1000.00) { tax=0.02*(price-1000)+tax; } printf("thetax=%10.3f",tax); } 运行程序: RUN¿ 15000¿ thetax=480.000 4.if语句嵌套 在一个if语句中可以又出现另一个if语句,这称为if语句的嵌套或多重if语句: if<表达式1> if<表达式11> ...... else 语句2; [例3-8]计算函数 1x>0 y=0x=0 -1x<0 流程图见图3-5。
源程序如下: main() { floatx,y; printf("inputx,y:"); scanf("%f",&x); if(x>=0) if(x>0) y=1; else y=0; else y=-1; printf("y=%4.0f/n",y); } 对多重if,最容易犯的错误是if与else配对错误, 例如,写成如下形式: y=0; if(x>=0) if(x>0) y=1; else y=-1; 从缩排上可以看出,作者希望else是与ifx>=0配对,但是C语言规定else总是与离它最近 的上一个if配对,结果,上述算法的流程图变成图3-6,完全违背了设计者的初衷。 改进的办法是使用复合语句,将上述程序段改写如下: y=0; if(x>=0) { if(x>0) y=1; } else y=-1;
 
说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
2/2 首页 上一页 1 2 |