第05章 选择结构程序设计-清华大学C语言_第1页
第05章 选择结构程序设计-清华大学C语言_第2页
第05章 选择结构程序设计-清华大学C语言_第3页
第05章 选择结构程序设计-清华大学C语言_第4页
第05章 选择结构程序设计-清华大学C语言_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章选择结构程序设计制作人:王敬华第5章:选择结构程序设计

学习的意义

语言程序设计教程第二版

第五章选择结构程序设计C在编制程序时,有时并不能保证程序一定执行某些指令,而是要根据一定的外部条件来判断哪些指令要执行。如菜谱中要加工西红柿,可能有这样的步骤:如果是用鲜西红柿,则去皮、切碎,开始放入,如果是用西红柿酱,就在最后放入。这里,我们并不知道具体操作时执行哪段指令,但菜谱给出了不同条件下的处理方式,计算机程序也是如此,可以根据不同的条件执行不同的代码,这就是选择结构。程序总是为解决某个实际问题而设计的,而问题往往包含多个方面,不同的情况需要有不同的处理,所以选择结构在我们的实际应用程序中可以说是无处不在,离开了选择结构很多情况将无法处理,因此,正确掌握选择结构程序设计方法对于我们编写实际应用程序尤为重要。第4章已讨论程序结构顺序结构选择结构循环结构本章讨论第6章讨论C程序中语句的分类关系运算符、逻辑运算符、条件运算符选择结构的程序设计(if语句、switch语句)选择结构程序设计举例本章小结学习目标

理解选择结构的含义;掌握C语言语句的分类;掌握关系运算符、逻辑运算符和条件运算符的用法;记住关系运算符、逻辑运算符和条件运算符与其它运算符的优先级关系和结合性;掌握if、switch语句的使用方法。学习内容

语言程序设计教程第二版

第五章选择结构程序设计C5.1C程序中语句的分类

C语言程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。C语言中的语句可以分为以下5类:表达式语句由表达式加上分号“;”组成。其一般形式为:表达式;

函数调用语句由函数名、实际参数加上分号“;”组成。其一般形式为:函数名(实际参数表);a=10赋值表达式a=10;赋值语句k++表达式k++;表达式语句

while(getchar()!='\n')

;

本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体为空语句。

空语句只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。printf("CProgram")函数调用;printf(“CProgram”);函数调用语句其功能是输出字符串"CProgram"。语言程序设计教程第二版

第五章选择结构程序设计C说明:

(1)

“}”后不加分号

(2)语法上和单一语句相同

(3)复合语句可嵌套

(4)复合语句内定义的变量只能在复合语句内使用。

复合语句用{…}括起来的一组语句。

{

inta=2,b=3,c;c=a+b;

printf("c=%d\n",c);}一般形式为:

{[数据说明部分;]

执行语句部分;

}

#include<stdio.h>voidmain(){

intx=10,y=20,z;

z=x+y;

{

intz;z=x*y;

printf("z=%d\n",z);//输出复合语句中z的值

}

printf("z=%d\n",z);//输出复合语句外z的值}输出结果:z=200z=30语言程序设计教程第二版

第五章选择结构程序设计C控制语句用来实现一定的控制功能的语句称为控制语句。C语言用控制语句来实现选择结构和循环结构。C语言有九种控制语句。可分成以下三类:if()~else~switchfor()~while()~do~while()continuebreakgotoreturn分支循环辅助控制本章讨论语言程序设计教程第二版

第五章选择结构程序设计C5.2关系运算符、逻辑运算符、条件运算符1.关系运算符和关系表达式

关系运算符含义优先级结合性>大于这些关系运算符等优先级,但比下面的优先级高左结合性>=(>和=之间没有空格)大于或等于<小于<=(<和=之间没有空格)小于或等于==(两个=之间没有空格)等于这些关系运算符等优先级,但比上面的优先级低!=(!和=之间没有空格)不等于关系运算符

关系表达式

用关系运算符连接起来的式子称为关系表达式。关系表达式的一般形式为:表达式关系运算符表达式例:a+b>c–dx>3/2'a'+1<c–

i–5*j==k+1

注意:

C语言用0表示假,非0表示真。一个关系表达式的值不是0就是1,0表示假,1表示真。语言程序设计教程第二版

第五章选择结构程序设计C关系运算符的优先级

算术运算符高移位运算符关系运算符&、|、^赋值运算符低例如:

c>a+b等价于:

a>b!=c等价于:

a==b<c等价于:

a=b>c等价于:

a>>2<c+d等价于:

a&4>b|c等价于:

c>(a+b)(a>b)!=ca==(b<c)a=(b>c)(a>>2)<(c+d)(a&(4>b))|c已知:a=1;b=2;c=3;

问:d=a!=c==a<b<c;的值?

答:d的值为1。等价于:d=((a!=c)==((a<b)<c));例:inta=3,b=2,c=1,d,f;a>b(a>b)==cb+c<ad=a>bf=a>b>c//表达式值1//表达式值1//表达式值0//d=1//f=0语言程序设计教程第二版

第五章选择结构程序设计C关系运算注意:例若a=0;b=0.5;x=0.3;

则a<=x<=b的值为

0例

5>2>7>8在C中是允许的,值为0例

inti=1,j=7,a;a=i+(j%4!=0);

则a=2例‘a’>0结果为‘A’>100结果为10例

应避免对实数作相等或不等的判断如1.0/3.0*3.0==1.0结果为可改写为:fabs(1.0/3.0*3.0-1.0)<1e-60语言程序设计教程第二版

第五章选择结构程序设计C2.逻辑运算符和逻辑表达式

逻辑运算符

逻辑运算符含义结合性优先级关系!单目运算符,逻辑非,表示相反右结合性

高低&&(两个&之间没有空格)双目运算符,逻辑与,表示并且左结合性||(两个|之间没有空格)双目运算符,逻辑或,表示或者AB!A!BA&&BA||B假假1100假真1001真假0101真真0011逻辑运算真值表

语言程序设计教程第二版

第五章选择结构程序设计C!、~、++、--、sizeof

高算术运算符移位运算符关系运算符&、|、^&&、||赋值运算符低例如:

a<=x&&x<=b等价于:

a>b&&x>y等价于:

a==b||x==y等价于:

!a||a>b等价于:

!a>b等价于:

c=a||b等价于:

a|7&&b&8等价于:

a>>2&&b<<1等价于:2.逻辑运算符和逻辑表达式

逻辑表达式

用逻辑运算符连接起来的式子称为逻辑表达式。逻辑表达式的一般形式为:表达式逻辑运算符表达式例:a<b&&b<c、x>10||x<-10、!x&&!y逻辑运算符的优先级

(a<=x)&&(x<=b)(a>b)&&(x>y)(a==b)||(x==y)(!a)||(a>b)(!a)>bc=(a||b)(a|7)&&(b&8)(a>>2)&&(b<<1)已知:a=4;b=5;

问:c=b>3&&2||8<b-!a;的值?

答:c的值为1。等价于:c=(((b>3)&&2)||(8<(b–(!a))));

例:

a=4;b=5;!aa&&ba||b!a||b4&&0||25>3&&2||8<4-!0‘c’&&‘d’//值为0//值为1//值为1//值为1//值为1//值为1//值为1语言程序设计教程第二版

第五章选择结构程序设计C逻辑运算注意:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例

a&&b&&c//只在a为真时,才判别b的值;

只在a、b都为真时,才判别c的值例

a||b||c//只在a为假时,才判别b的值;

只在a、b都为假时,才判别c的值例

a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b)&&(n=c>d)//结果:m=0,n=1语言程序设计教程第二版

第五章选择结构程序设计Cexpr1取expr2值取expr3值非0=0条件运算符可嵌套

如x>0?1:(x<0?-1:0)优先级:133.条件运算符与表达式一般形式:expr1?expr2:expr3执行过程功能:相当于条件语句,但不能取代一般if语句例

求a+|b|

printf(“a+|b|=%d\n”,b>0?a+b:a-b);例

(a==b)?’Y’:’N’(x%2==1)?1:0(x>=0)?x:-x(c>=‘a’&&c<=‘z’)?c-’a’+’A’:c结合方向:自右向左

如a>b?a:c>d?c:da>b?a:(c>d?c:d)expr1、expr2、expr3类型可不同,表达式值取较高的类型例

x?‘a’:‘b’//x=0,表达式值为‘b’;x≠0,表达式值为‘a’x>y?1:1.5//x>y,值为1.0;x<y,值为1.5例

if(a>b)

printf(“%d”,a);else

printf(“%d”,b);printf(“%d”,a>b?a:b);例:小写字母转盘。#include<stdio.h>#include<conio.h>voidmain(){charch,ch1,ch2;//变量定义

ch=getche();//读取一字符

putchar('\n');//换行

ch1=ch=='a'?'z':ch-1;

//求前驱字符

ch2=ch=='z'?'a':ch+1;

//求后继字符

printf("ch1=%c,ch2=%c\n",ch1,ch2);//显示结果}输出结果(假设输入为w)

:ch1=v,ch2=x语言程序设计教程第二版

第五章选择结构程序设计C运算符总结:

总体上讲,单目运算符都是同等优先级的,具有右结合性,并且优先级比双目运算符和三目运算符都高。三目运算符的优先级比双目运算符要低,但高于赋值运算符和逗号运算符。逗号运算符的优先级最低,其次是赋值运算符。只有单目运算符、赋值运算符和条件运算符具有右结合性,其它运算符都是左结合性。双目运算符中,算术运算符的优先级最高,逻辑运算符的优先级最低。

单目运算符高算术运算符移位运算符关系运算符位运算符逻辑运算符条件运算符赋值运算符逗号运算符低到现在为止,我们已经学习了30多个运算符。掌握它们的优先级关系特别重要。优先级的记忆规则:语言程序设计教程第二版

第五章选择结构程序设计C5.3选择结构的程序设计

1.if语句

简单if语句形式

if(表达式)

语句;格式:执行流程:语句表达式T例如:下面的程序段是输入两个整数,输出其中的大数。

inta,b,max;

printf("inputtwonumbers:");

scanf("%d%d",&a,&b);max=a;

if(max<b)max=b;

printf("max=%d",max);

if_else形式

if(表达式)

语句1;else

语句2;格式:执行流程:表达式语句1语句2TF语言程序设计教程第二版

第五章选择结构程序设计CF例如:下面的程序段同样是输出两个整数中的最大数。

inta,b;

printf("inputtwonumbers:");

scanf("%d%d",&a,&b);

if(a>b)

printf("max=%d\n",a);else

printf("max=%d\n",b);1.if语句

if_else_if形式

if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;……elseif(表达式n)语句n;else语句n+1;格式:执行流程:表达式1F表达式2表达式3FTFTT语言程序设计教程第二版

第五章选择结构程序设计CF表达式n语句n语句n+1T语句3语句2语句1例如:下面的程序段是判断输入字符的种类。

charc;

printf("Enteracharacter:");c=getchar();

if(c<0x20)

printf("Thecharacterisacontrolcharacter\n");

elseif(c>='0'&&c<='9')

printf("Thecharacterisadigit\n");

elseif(c>='A'&&c<='Z')

printf("Thecharacterisacapitalletter\n");

elseif(c>='a'&&c<='z')

printf("Thecharacterisalowerletter\n");else

printf("Thecharacterisothercharacter\n");

if语句注意事项

(1)if语句后面的表达式必须用括号括起来。

(2)表达式通常是逻辑表达式或关系表达式,但也可以是其它任何表达式,如赋值表达式等,甚至也可以是一个变量。只要表达式非零时,表达式的值就为真,否则就是假。

(3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。

(4)在if语句中,如果表达式是一个判断两个数是否相等的关系表达式,要当心不要将==写成了赋值运算符=。例:ifx>0

printf(“x>0”);例:if(x>0)

printf(“x>0”);

if(a=5)语句;

//表达式的值永远为非0,所以其后的语句总是要执行的

if(b)语句;

//等价于if(b!=0)语句;例:if(a>b)a++;b++;else{a=0;b=1;}例:if(a>b){a++;b++;}else{a=0;b=1;}例:

#include<stdio.h>voidmain(){

intx=0;if(x==0)

printf(“x=0\n”);else

printf(“x!=0\n”);}例:

#include<stdio.h>voidmain(){

intx=0;if(x=0)

printf(“x=0\n”);else

printf(“x!=0\n”);}运行结果:x=0运行结果:x!=0语言程序设计教程第二版

第五章选择结构程序设计Cif语句嵌套:

一般形式:if(expr1)

if(expr2)statement1elsestatement2else

if(expr3)statement3elsestatement4内嵌if内嵌ifif(expr1)

if(expr2)statement1elsestatement2内嵌ifif(expr1)

if(expr2)statement1elsestatement3

内嵌ifif(expr1)statement1else

if(expr3)statement3elsestatement4内嵌if语言程序设计教程第二版

第五章选择结构程序设计C例输入两数并判断其大小关系

#include<stdio.h>

voidmain(){

intx,y;

printf("Enterintegerx,y:");

scanf("%d,%d",&x,&y);if(x!=y)if(x>y)printf("X>Y\n");elseprintf("X<Y\n");else

printf("X==Y\n");

}运行结果:

Enterintegerx,y:12,23X<Y

Enterintegerx,y:12,6X>YEnterintegerx,y:12,12X==Y语言程序设计教程第二版

第五章选择结构程序设计C

if(……)if(……)if(……)else……else……else……C语言规定,在缺省{}时,else总是和它上面离它最近的未配对的if配对例:

#include<stdio.h>voidmain(){

inta=1,b=-1;

if(a>0)

if(b>0)

a++;

else

a--;

printf("a=%d\n");}例:

#include<stdio.h>voidmain(){

inta=1,b=-1;

if(a>0)

{if(b>0)a++;}

else

a--;

printf("a=%d\n");

}运行结果:a=0运行结果:a=1

if_else

配对原则语言程序设计教程第二版

第五章选择结构程序设计C例:

if(a==b)if(b==c)

printf(“a==b==c”);else

printf(“a!=b”);修改:

if(a==b)

{if(b==c)

printf(“a==b==c”);

}else

printf(“a!=b”);实现if~else正确配对方法:加{}语言程序设计教程第二版

第五章选择结构程序设计C例:考虑下面程序输出结果:

voidmain(){

intx=100,a=10,b=20;

intv1=5,v2=0;if(a<b)

if(b!=15)

if(!v1)x=1;

else

if(v2)x=10;x=-1;

printf(“%d”,x);}结果:-1语言程序设计教程第二版

第五章选择结构程序设计C2.switch语句(开关分支语句)一般形式:switch(表达式){caseE1:

语句组

1;break;caseE2:

语句组

2;break;…….caseEn:

语句组

n;break;[default:

语句组;break;]}执行过程:switch表达式语句组1语句组2语句组n语句组…...语言程序设计教程第二版

第五章选择结构程序设计CE1case

E2case

Encase

defaultcase

使用switch语句注意事项

(1)switch后面的“表达式”,可以是int、char和枚举型中的一种,但不可为浮点型。

floata,b=4.0;scanf("%f",&a);switch(a){case1:b=b+1;break;case2:b=b-1;break;}printf("b=%f\n",b);不可为浮点型表达式语言程序设计教程第二版

第五章选择结构程序设计C

inta,b=4;

scanf("%d",&a);switch(a){case1:b=b+2;break;case2:b=b*2;break;case1:b=b+2;break;}

printf("b=%d\n",b);

使用switch语句注意事项

(2)case后面语句(组)可加{}也可以不加{},但一般不加{}。

(3)每个case后面“常量表达式”的值,必须各不相同,否则会出现相互矛盾的现象。

switch(i){case1:{b=b+1;break;}//{}可加可不加

case2:b=b-1;break;}case1在前面已使用语言程序设计教程第二版

第五章选择结构程序设计C

使用switch语句注意事项

(4)每个case后面必须是“常量表达式”,表达式中不能包含变量。

例:按成绩分成A、B、C、D、E、F几个等级。

charscore;

printf("EnterScore:");

scanf("%d",&score);switch(score){casescore>=90:printf("A");break;casescore>=80&&score<90:

printf(“B");break;casescore>=70&&score<80:

printf(“C");break;casescore>=60&&score<70:

printf(“E");break;default:printf(“F");break;}case后面包含变量语言程序设计教程第二版

第五章选择结构程序设计C

使用switch语句注意事项

(5)case后面的“常量表达式”仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上break语句,以便结束switch语句。

#include<stdio.h>voidmain(){charch;

ch=getch();switch(ch){case'Y':printf("Yes\n");break;case'N':printf("No\n");break;case'A':printf("All\n");break;default:printf("Yes,NoorAll\n");}}运行结果:

No//假设输入为:N

#include<stdio.h>voidmain(){charch;

ch=getch();switch(ch){case'Y':printf("Yes\n");break;case'N':printf("No\n");case'A':printf("All\n");break;default:printf("Yes,NoorAll\n");}}//假设输入为:N运行结果:

NoALL语言程序设计教程第二版

第五章选择结构程序设计C

使用switch语句注意事项

(6)多个case子句,可共用同一语句(组)。

例:当a的值是1、2、3时,将b的值加2,当a的值是4、5、6时,将b的值减2。

inta,b=4;

scanf("%d",&a);switch(a){case1:case2:case3:b+=2;break;case4:case5:case6:b-=2;break;default:b*=2;break;}

printf("b=%d\n",b);语言程序设计教程第二版

第五章选择结构程序设计C

使用switch语句注意事项

(7)case子句和default子句如果都带有break子句,那么它们之间顺序的变化不会影响switch语句的功能。#include<stdio.h>voidmain(){charch;

ch=getch();switch(ch){case'Y':printf("Yes\n");break;case'N':printf("No\n");break;case'A':printf("All\n");break;

default:printf("Yes,NoorAll\n");break;}}#include<stdio.h>voidmain(){charch;

ch=getch();switch(ch){case'Y':printf("Yes\n");break;

default:printf("Yes,NoorAll\n");break;case'N':printf("No\n");

break;case'A':printf("All\n");break;}}语言程序设计教程第二版

第五章选择结构程序设计C

使用switch语句注意事项

(8)case子句和default子句如果有的带有break子句,而有的没有带break子句,那么它们之间顺序的变化可能会影响输出的结果。

#include<stdio.h>voidmain(){charch;

ch=getch();switch(ch){case'Y':printf("Yes\n");break;case'N':printf("No\n");break;case'A':printf("All\n");break;

default:printf("Yes,NoorAll\n");}}#include<stdio.h>voidmain(){charch;

ch=getch();switch(ch){case'Y':printf("Yes\n");break;

default:printf("Yes,NoorAll\n");case'N':printf("No\n");break;case'A':printf("All\n");break;}}//假设输入为:B运行结果:Yes,NoorAll运行结果:Yes,NoorAllNo//假设输入为:B语言程序设计教程第二版

第五章选择结构程序设计C

使用switch语句注意事项

(9)switch语句可以嵌套。

voidmain(){

intx=1,y=0,a=0,b=0;switch(x){case1:switch(y)

{case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}

printf("\na=%d,b=%d",a,b);}运行结果:a=2,b=1

语言程序设计教程第二版

第五章选择结构程序设计C5.4选择结构程序设计举例

【例1】已知某公司员工的保底薪水为500,某月所接工程的利润profit(整数)与利润提成的关系如下所示(计量单位:元)。计算员工的当月薪水。

工程利润profit提成比率profit≤1000没有提成1000<profit≤2000提成10%2000<profit≤5000提成15%5000<profit≤10000提成20%10000<profit提成25%程序应该这样来设计:首先要定义一个变量用来存放员工所接工程的利润;其次提示用户输入员工所接工程的利润,并调用scanf函数接受用户输入员工所接工程的利润;然后根据上表的规则,计算该员工当月的提成比率。最后计算该员工当月的薪水(保底薪水+所接工程的利润*提成比率),并输出结果。语言程序设计教程第二版

第五章选择结构程序设计C#include<stdio.h>voidmain(){longprofit;//所接工程的利润

floatratio;//提成比率

floatsalary=500;//薪水,初始值为保底薪水500

printf("Inputprofit:");//提示输入所接工程的利润

scanf("%ld",&profit);//输入所接工程的利润

//计算提成比率

if(profit<=1000)ratio=0;

elseif(profit<=2000)ratio=(float)0.10;

elseif(profit<=5000)ratio=(float)0.15;

elseif(profit<=10000)ratio=(float)0.20;

elseratio=(float)0.25;salary+=profit*ratio;//计算当月薪水

printf("salary=%.2f\n",salary);//输出结果}运行结果:Inputprofit:4000↙salary=1100.00方法一:使用if_elseif语句语言程序设计教程第二版

第五章选择结构程序设计C#include<stdio.h>voidmain(){longprofit;//所接工程的利润

floatratio;//提成比率

floatsalary=500;//薪水,初始值为保底薪水500

printf("Inputprofit:");//提示输入所接工程的利润

scanf("%ld",&profit);//输入所接工程的利润

//计算提成比率

if(profit<=1000)ratio=0;if(1000<profit&&profit<=2000)ratio=(float)0.10;if(2000<profit&&profit<=5000)ratio=(float)0.15;if(5000<profit&&profit<=10000)ratio=(float)0.20;if(10000<profit)ratio=(float)0.25;salary+=profit*ratio;//计算当月薪水

printf("salary=%.2f\n",salary);//输出结果}运行结果:Inputprofit:4000↙salary=1100.00方法二:使用if语句0.1默认为double型,不进行强制类型转换将产生警告信息!语言程序设计教程第二版

第五章选择结构程序设计C方法三:使用switch语句算法设计要点:为使用switch语句,必须将利润profit与提成的关系转换成某些整数与提成的关系。分析本题可知,提成的变化点都是1000的整数倍(1000、2000、5000、……),如果将利润profit整除1000,则当:

profit≤1000对应0、11000<profit≤2000对应1、22000<profit≤5000对应2、3、4、55000<profit≤10000对应5、6、7、8、9、1010000<profit对应10、11、12、……

为解决相邻两个区间的重叠问题,最简单的方法就是:利润profit先减1(最小增量),然后再整除1000即可:

profit≤1000对应01000<profit≤2000对应12000<profit≤5000对应2、3、45000<profit≤10000对应5、6、7、8、910000<profit对应10、11、12、……语言程序设计教程第二版

第五章选择结构程序设计C#include<stdio.h>voidmain(){longprofit;//所接工程的利润

intgrade;floatratio;//提成比率

floatsalary=500;//薪水,初始值为保底薪水500

printf("Inputprofit:");//提示输入所接工程的利润

scanf("%ld",&profit);//输入所接工程的利润方法三:使用switch语句

//将利润-1、再整除1000,转化成switch语句中的case标号

grade=(profit-1)/1000;

switch(grade)//计算提成比率

{

case0:ratio=0;break;//profit≤1000

case1:ratio=(float)0.10;break;//1000<profit≤2000

case2:

case3:case4:ratio=(float)0.15;break;//2000<profit≤5000

case5:case6:

case7:

case8:

case9:ratio=(float)0.20;break;//5000<profit≤10000

default:ratio=(float)0.25;//10000<profit

}salary+=profit*ratio;//计算当月薪水

printf("salary=%.2f\n",salary);//输出结果}运行结果:Inputprofit:4000↙salary=1100.00语言程序设计教程第二版

第五章选择结构程序设计C

【例2】写一程序,从键盘上输入1年份year(4位十进制数),判断其是否闰年。闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。

程序应该这样来设计:如果X能被Y整除,则余数为0,即如果X%Y的值等于0,则表示X能被Y整除!首先将是否闰年的标志leap预置为0(非闰年),这样仅当year为闰年时,将leap置为1即可。这种处理两种状态值的方法,对优化算法和提高程序可读性非常有效,请读者仔细体会。语言程序设计教程第二版

第五章选择结构程序设计C#include<stdio.h>voidmain(){

intyear,leap=0; //leap=0:预置为非闰年

printf("Pleaseinputtheyear:");//提示输入年份

scanf(“%d”,&year);//输入年份

if(year%4==0)//如果被4整除

if(year%100!=0)//如果不被100整除

leap=1;//置为闰年

if(year%400==0)//如果被400整除

leap=1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论