文档详情

第4节 C语言 分支结构的程序设计.doc

发布:2017-07-11约5.14千字共11页下载文档
文本预览下载声明
第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语句中又包含了一个或
显示全部
相似文档