第4节 C语言 分支结构的程序设计.doc
文本预览下载声明
第4章 分支结构的程序设计
本章重点
if语句的三种形式
if语句的应用
if~else语句的应用
if~else if语句的应用
switch语句的程序流程
4.1 if语句的应用
if语句形式之一
if(表达式)
语句块
图4.1 if语句流程图
例4.1:从键盘输入一批数,统计正数的和,当输入0时程序结束。
分析问题:通过循环输入整数,假设输入变量为x;然后要判断该数是否为0,如果不为0,再判断值是否大于零,如果大于零,加入和。
#includestdio.h
int main( )
{
int x,sum=0;
scanf(%d,x);
for( ; x ; scanf(%d,x))
if(x0)
sum=sum+x;
printf(正数总和为:%d\n,sum);
return 0;
}
4.2 if~else语句的应用
if语句形式之二
if(表达式)
语句块1
else
语句块2
图4.4 if…else语句流程图
例4.3:判断从键盘输入的数是正数还是负数,输入数0结束程序运行。
分析问题:数从键盘输入,输入的数如果大于0则输出“输入的数是正数”,如果是小于0则输出“输入的数是负数”,如果是等于0,则程序运行结束。
流程图如图4.5所示。
图4.5 程序流程图
#include stdio.h
int main()
{
int x=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);
}
return 0;
}
例4.4:从键盘输入10个整数,把所有的正数相加以及所有的负数相加,最后输出所有正数的和,以及所有负数的和。
分析问题:要从键盘输入十个整数,所以采用循环结构,输入的数分正数和负数,各进行累加。流程图如图4.6所示。
图4.6 流程图
#include stdio.h
int main()
{
int nsum=0,n=0,psum=0,p=0;
/*nsum负数累加值,n负数个数,psum正数累加值,p正数个数(0作为正数)*/
int i,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);
return 0;
}
4.3 if~else if 语句的应用
if语句形式之三
if(表达式1)
语句块1
else if(表达式2)
语句块2
.
.
.
else if(表达式n-1)
语句块n-1
else
语句块n
功能:从上到下依次判断表达式的值,当出现某个值为真(非0)时,执行与其相对应的语句,并跳过其余条件的判别;如果所有的表达式均为假(0),则执行语句n。
程序流程图如图4.7所示。
图4.7 if…else if流程图
例4.5:从键盘输入一个数给x,然后判断该变量是否大于零,若大于零的话,则输出一行文字说明该变量是正数,否则的话再判断变量x的值是否为零,若为零的话,则输出一行文字说明该变量是零,否则的话则x的值是负数,输出一行文字说明该变量是负数。
分析:输入的数分三种情况:正数、负数、零。流程图如图4.8所示。
图4.8流程图
编译程序及运行
#include stdio.h
int main()
{
int x;
printf(输入一数值:);
scanf(%d,x);
if(x 0) printf(x是正数.\n);
else if(x == 0) printf(x是零.\n);
else printf(x是负数.\n);
return 0;
}
4.4 if嵌套语句的应用
if语句的嵌套是指if语句中又包含了一个或
显示全部