第4章 分支结构的程序设计.docx

上传人:b****1 文档编号:13335664 上传时间:2023-06-13 格式:DOCX 页数:14 大小:122.31KB
下载 相关 举报
第4章 分支结构的程序设计.docx_第1页
第1页 / 共14页
第4章 分支结构的程序设计.docx_第2页
第2页 / 共14页
第4章 分支结构的程序设计.docx_第3页
第3页 / 共14页
第4章 分支结构的程序设计.docx_第4页
第4页 / 共14页
第4章 分支结构的程序设计.docx_第5页
第5页 / 共14页
第4章 分支结构的程序设计.docx_第6页
第6页 / 共14页
第4章 分支结构的程序设计.docx_第7页
第7页 / 共14页
第4章 分支结构的程序设计.docx_第8页
第8页 / 共14页
第4章 分支结构的程序设计.docx_第9页
第9页 / 共14页
第4章 分支结构的程序设计.docx_第10页
第10页 / 共14页
第4章 分支结构的程序设计.docx_第11页
第11页 / 共14页
第4章 分支结构的程序设计.docx_第12页
第12页 / 共14页
第4章 分支结构的程序设计.docx_第13页
第13页 / 共14页
第4章 分支结构的程序设计.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第4章 分支结构的程序设计.docx

《第4章 分支结构的程序设计.docx》由会员分享,可在线阅读,更多相关《第4章 分支结构的程序设计.docx(14页珍藏版)》请在冰点文库上搜索。

第4章 分支结构的程序设计.docx

第4章分支结构的程序设计

第4章分支结构的程序设计

本章重点

●if语句的三种形式

●if语句的应用

●if~else语句的应用

●if~elseif语句的应用

●switch语句的程序流程

4.1if语句的应用

if语句形式之一

if(表达式)

语句块

图4.1if语句流程图

例4.1:

从键盘输入一批数,统计正数的和,当输入0时程序结束。

分析问题:

通过循环输入整数,假设输入变量为x;然后要判断该数是否为0,如果不为0,再判断值是否大于零,如果大于零,加入和。

#include

intmain()

{

intx,sum=0;

scanf("%d",&x);

for(;x;scanf("%d",&x))

if(x>0)

sum=sum+x;

printf("正数总和为:

%d\n",sum);

return0;

}

4.2if~else语句的应用

if语句形式之二

if(表达式)

语句块1

else

语句块2

图4.4if…else语句流程图

例4.3:

判断从键盘输入的数是正数还是负数,输入数0结束程序运行。

分析问题:

数从键盘输入,输入的数如果大于0则输出“输入的数是正数”,如果是小于0则输出“输入的数是负数”,如果是等于0,则程序运行结束。

流程图如图4.5所示。

图4.5程序流程图

#include

intmain()

{

intx=1;

printf("\n请输入一整数(输入0程序退出):

");

scanf("%d",&x);

while(x)

{

if(x>0)

printf("输入的数%d是正数.\n",x);

else

printf("输入的数%d是负数.\n",x);

printf("\n请输入一整数(输入0程序退出):

");

scanf("%d",&x);

}

return0;

}

例4.4:

从键盘输入10个整数,把所有的正数相加以及所有的负数相加,最后输出所有正数的和,以及所有负数的和。

分析问题:

要从键盘输入十个整数,所以采用循环结构,输入的数分正数和负数,各进行累加。

流程图如图4.6所示。

图4.6流程图

 

#include

intmain()

{

intnsum=0,n=0,psum=0,p=0;

/*nsum负数累加值,n负数个数,psum正数累加值,p正数个数(0作为正数)*/

inti,x;/*i用于控制循环次数,x用户存储输入的数*/

for(i=1;i<=10;i++)

{

printf("请输入10整数中的第%d个数:

",i);

scanf("%d",&x);

if(x>=0)

{

psum+=x;

p++;

}

else{

nsum+=x;

n++;

}

}

printf("\n有%d个正数,和为:

%d\n有%d个负数,和为:

%d\n",p,psum,n,nsum);

return0;

}

4.3if~elseif语句的应用

if语句形式之三

if(表达式1)

语句块1

elseif(表达式2)

语句块2

  .

  .

  .

elseif(表达式n-1)

语句块n-1

else

语句块n

功能:

从上到下依次判断表达式的值,当出现某个值为真(非0)时,执行与其相对应的语句,并跳过其余条件的判别;如果所有的表达式均为假(0),则执行语句n。

程序流程图如图4.7所示。

图4.7if…elseif流程图

例4.5:

从键盘输入一个数给x,然后判断该变量是否大于零,若大于零的话,则输出一行文字说明该变量是正数,否则的话再判断变量x的值是否为零,若为零的话,则输出一行文字说明该变量是零,否则的话则x的值是负数,输出一行文字说明该变量是负数。

分析:

输入的数分三种情况:

正数、负数、零。

流程图如图4.8所示。

图4.8流程图

编译程序及运行

#include

intmain()

{

intx;

printf("输入一数值:

");

scanf("%d",&x);

if(x>0)printf("x是正数.\n");

elseif(x==0)printf("x是零.\n");

elseprintf("x是负数.\n");

return0;

}

4.4if嵌套语句的应用

if语句的嵌套是指if语句中又包含了一个或多个if语句。

上一节介绍的if-elseif结构也是if语句的嵌套结构。

例4.6:

编写一个程序,由键盘输入三个整数作为三角形的三条边,判断是否能构成一个三角形,如能并判断是等边三角形、等腰三角形、直角三角形,还是其它一般的三角形。

分析问题:

设三个整数分别为:

a、b、c,构成三角形的条件为:

a+b>c&&a+c>b&&b+c>a

构成等边三角形的条件为:

a==b&&b==c;构成等腰三角形的条件为:

a==b||b==c||a==c。

构成直角三角形的条件为:

a*a+c*c==b*b||a*a+b*b==c*c||c*c+b*b==a*a。

编译程序及运行

步骤1:

在VisualC++环境下新建文件可用[开始]→[程序]→[MicrosoftVisualC++6.0]→[MicrosoftVisualC++6.0]→[文件]→[新建]→[文件]→[C++SourseFile],输入文件名4-6.c

步骤2:

在4-6.c文件中输入以下完整的源程序。

#include

intmain()

{

inta,b,c;

printf("请输入第1条边:

");

scanf("%d",&a);

printf("请输入第2条边:

");

scanf("%d",&b);

printf("请输入第3条边:

");

scanf("%d",&c);

if(a+b>c&&a+c>b&&b+c>a)

{

printf("能构成一个三角形\n");

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

printf("能构成一个等边三角形\n");

elseif(a==b||b==c||a==c)

printf("能构成一个等腰三角形\n");

elseif(a*a+c*c==b*b||a*a+b*b==c*c||c*c+b*b==a*a)

printf("能构成一个直角三角形\n");

else

printf("能构成一个一般的三角形\n");

}

else

printf("不能构成一个三角形\n");

return0;

}

4.5switch的应用

switch语句格式:

switch(表达式)

{

case常量表达式1:

语句序列1

[break;]

case常量表达式2:

语句序列2

[break;]

case常量表达式n;

语句序列n

[break;]

default:

语句序列n+1

}

图4.9语句执行的流程图

例4.7求执行下列程序段后k的值。

charc='2';intk=1;

switch(c+1-'0')

{case2:

k+=1;

case2+1:

k+=2;

case4:

k+=3;

}

解析:

switch中表达式的值为3,从case2+1入口,执行语句k+=2;得k=3,由于此语句后无break;语句,继续执行case4后语句:

k+=3;最后k=6。

例4.8输入一个字符,如果是Y、N或y、n,则分别执行一输出语句;如果是其他字母则执行另一输出语句。

程序如下所示:

#include

voidmain()

{

charch;

printf("pleaseinputY/N(y/n):

");

scanf("%c",&ch);

switch(ch)

{

case'y':

case'Y':

printf("\nthisis'Y'or'y'.\n");

break;

case'n':

case'N':

printf("\nthisis'N'or'n'.\n");

break;

default:

printf("\nthisisotherchar.\n");

}

}

例4.9编写程序,实现如下功能:

输入一个实数后,屏幕上显示如下菜单:

1.输出相反数

2.输出平方数

3.输出平方根

4.退出

输入1,输出该数的相反数;输入2,输出该数的的平方数;输入3,输出该数的的平方根;输入4退出此程序。

输入1~4之外的数,显示“请输入1~4之间的数字”。

分析:

此题涉及多个菜单的选择,因此用到多分支结构——switch,switch可以不同条件实现不同的程序块,如此题中输入数字1,则执行输出相反数的程序块。

图4.10菜单选择流程图

#include

#include

intmain()

{

inti;

floatm;

intc=5;

printf("输入任意一个整型数:

\n");

scanf("%f",&m);

printf(*************************\n");

printf("1.输出相反数\n");

printf("2.输出平方数\n");

printf("3.输出平方根\n");

printf("4.退出\n");

printf("*************************\n");

while

(1)

{

scanf(“%d”,&c);

switch(c)

{

case1:

printf("输出相反数:

%f\n",-m);break;

case2:

printf("输出平方数:

%f\n",m*m);break;

case3:

printf("输出平方根:

%f\n",sqrt(m));break;

case4:

break;

default:

printf("请输入1~4之间的数字!

\n");

}

if(c==4)break;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2