文档详情

第五讲switch算法和流程图OK

平***
实名认证
店铺
PPT
1.38MB
约71页
文档ID:47590246
第五讲switch算法和流程图OK_第1页
1/71

C语言程序设计C语言程序设计(A)郭 素梅 GUO SumeiC语言程序设计*(c) Guo S.运算符¡=(赋值)¡+,-,*,/,%双目(算术 )¡++,--单目(自增减)¡+=,-=,*=,/=,%=双目(复合 )¡>, =, y? x: y; max = x>y? x: y; 唯一的三目运算符唯一的三目运算符完全等价于:完全等价于: if(x>y) if(x>y) max=x;max=x; else else max = y;max = y;C语言程序设计*(c) Guo S.认识条件运算符认识条件运算符 A A??B B::C CX = X=0? (D>0? printf(“D>=0? (D>0? printf(“两个实数解两个实数解”): ”): printf(“printf(“一个实数解一个实数解”)): printf(“”)): printf(“无实数解无实数解 ”);”);if(X=0){if(D>=0){if(D>0)printf(“ if(D>0)printf(“两个实数解两个实数解”);”);else printf(“ else printf(“一个实数解一个实数解”);”);} }else printf(“else printf(“无实数解无实数解”);”);C语言程序设计*(c) Guo S.a,b,c,da,b,c,d四个数的最大值四个数的最大值m1 = a>b? a:b;m1 = a>b? a:b; m2 = c>b?c:d;m2 = c>b?c:d; max = m1>m2?m1:m2;max = m1>m2?m1:m2;C语言程序设计 i if f语句练习语句练习¡键盘给定三个浮点数a,b和c,求最大值max,和最 小值min,并输出¡键盘输入一个整数m,作为月份。

当m大于12或小于1时,输出“输入错误”; 当m为3到5,输出“春天”; 6到8,输出“夏天”; 9到11,输出“秋天”; 12,1和2时,输出“冬天”*(c) Guo S.C语言程序设计 i if f语句练习语句练习¡键盘给定三个浮点数a,b和c,将其按照 a大于等于b,且b大于等于c的要求,排 序后,输出思考:四位数如何做?】¡键盘输入一个三位数的整数,判断是否为 水仙花数,是则输出“1”,不是则输出 “0”输入的不是三位数,则输出“输入 错误”c) Guo S.C语言程序设计 i if f语句练习语句练习¡键盘输入一个浮点数score,作为成绩 当大于100或小于0,输出“输入错误”; 在0到100之间,将其转换为五级制,即 90到100为“优秀”,80到89为“良好” ,70到79为“中等”,60到69为“及格” ,0到59为“不及格”¡算命先生*(c) Guo S.C语言程序设计重要题重要题¡¡水仙花数;勾水仙花数;勾股股数;对称数;闰年数;对称数;闰年¡¡公倍数公倍数{ int year,month,days;printf(“Enter printf(“Enter year, month\nyear, month\n”);”);scanf(“%d,%d”, scanf(“%d,%d”,switch(month) switch(month){ case 1: { case 1:case 3: case 3:case 5: case 5:case 7: case 7:case 8: case 8:case 10: case 10:case 12: days=31; break; case 12: days=31; break;几个几个CASE CASE 执行相同的执行相同的 语句语句跳出开关结构跳出开关结构处理大月处理大月程序举例关系到如何判闰年关系到如何判闰年? ?C语言程序设计*(c) Guo S.case 4:case 4:case 6: case 6:case 9: case 9:case 11: days=30 ; break; case 11: days=30 ; break;case 2: if ((year%4==0) ||(year%400)==0) days=29;else days=28; break; else days=28; break;default:printf(“Enter error!\n”); days=0; default:printf(“Enter error!\n”); days=0;break; break; } } if (days!=0) if (days!=0)printf(“%d\n”,days); printf(“%d\n”,days); return 0; return 0;} }判断是否判断是否 为闰年为闰年开关结开关结 构结束构结束处理二月处理二月程序举例 (续)处理小月处理小月C语言程序设计*(c) Guo S.¡从键盘输入x,求y,并输出。

¡执行时要求:从键盘输入4次x的值,分别 为x>=1.0, x int main() {int a,b,m; a = 123; b = 456; if( a>b ) m = a; else m = b; printf(“max(a,b)=%d”,m); return 0; }max3.cC语言程序设计*28算法举例如何求一个整数的阶乘?如何求最大公约数? 如何求三个、四个数的最大值、最小值? 如何利用泰勒展开计算sin,cos的值? 等等如何如何设计设计一个算法?一个算法? C语言程序设计*29算法举例给出利用下边的泰勒展开求sin(0.5)的算法 要求所加的最后一项不大于0.0005初始化:x=0.5; i=1; s=1; 将用到:t = pow(x,i); re = re + s*t;i = i+2; s = -s; if(fabs(t)=0 有实解 ① 计算实解 ② 打印结果 3) 否则,打印“没有实解” 它涉及两部分处理,执行将按1)~2)顺序1) 内有包含两部分处理,计算和打印C语言程序设计*44算法设计举例开始计算s=b*b-4ac结束输入系数a,b,c输出”没有实解”s>=0输出实根x1和x2x1=(-b+sqrt(s))/2a x2=(-b-sqrt(s))/2aYesNoC语言程序设计*45算法设计举例计算和打印“语文数学及平均成绩”的 算法。

设计的算法就需要得知语文数学的成绩 ,然后计算平均,最后打印具体步骤为: 1)输入语文和数学成绩N1和N2 2)计算平均成绩Av=(N1+N2)/2 3)打印N1,N2和Av 它涉及3个操作,执行将按1)~3)顺序C语言程序设计*46算法设计举例 ave2.c 开始计算平均Av=(a+b)/2结束输入成绩N1,N2输出成绩N1,N2和AvC语言程序设计*47算法设计举例#include int main()// main函数 { double N1, N2, Av;// 定义变量printf(“请输入语文, 数学成绩\n“); scanf(“%lf, %lf“, Av = (N1+N2)/2; // 计算平均// 函数调用语句:输出函数printfprintf(“语文=%lf, 数学 =%lf\n“,N1,N2); printf(“平均=%lf\n“,Av);return 0; }ave2.c 开始计算平均Av=(a+b)/2结束输入成绩N1,N2输出成绩N1,N2和Avscanfscanf(“%lf%lf“, ); printf(printf(“%lf\n”, av“%lf\n”, av); );C语言程序设计*48练习:c2f.c 摄氏和华氏温度变换公式: F=9/5*C+32要求 输出c=0,10,20,,,100 对应的摄氏温度fcf 0 32.0 1041.0框图 程序C语言程序设计*49练习:sin的近似计算:要求 追加项的绝对值小于 0.00005框图 程序C语言程序设计*50C语言程序设计*51结构化程序的设计方法基本结构:¡顺序结构¡选择结构¡循环结构结构化程序:¡用顺序、选择和循 环三种基本结构的 组合来设计程序。

¡也就是说用计算机 语言表示的结构化 算法C语言程序设计*52算法1.算法2.算法举例3.算法的特性4.算法的表示5.结构化程序的设计方法C语言程序设计*53算法 小结本章是计算机程序设计和算法的基础,学习 时要重点理解和掌握的是计算机算法的表 示方法 作为一个程序设计人员,应该熟悉并掌握比 较常用的程序流程图描述方法,最终需要 使用计算机语言,即程序设计语言描述并 实现 本章通过算法举例以训练引导学生用计算机 的思维表达解决问题的过程,以最终实现 算法,这就是程序设计算法的根本C语言程序设计*54作业1.P15 第5题2.编程:将两个整数a和b分别 初始化为123和456,交换其值 后输出a和bC语言程序设计*55联系¡郭 素梅(GUO Sumei)lPhone:0756-362-2865lOffice:HA206/205lEmail:cnjpguoau@live.jplChat: MSN(常用) cnjpguoau@live.jp (不常用) 1395092737C语言程序设计*56计算机构成计算机本体控制装置演算装置主存储装置 输入装置 输出装置CPU中央处理装置 Central Processing Unit辅存储装置: 硬盘,CD-ROM等补充C语言程序设计*57进制¡24进制:一天24小时¡60进制:一小时60分一分60秒10进制以外:补充C语言程序设计*58进制¡8进制: 数字0到7表示¡10进制:数字0到9表示¡16进制:数字0到9,字母A到F表示2进制是基础: 数字0和1表示补充C语言程序设计*59进制N进制到 10进制: a b c2 1 0补充2= aN + bN + cN进制的指数位C语言程序设计*60进制二进制到十进制的换算: 1 0 1 0二进制是基础: 数字0和1表示3 2 1 0 二进制2的指数位补充C语言程序设计*61进制二进制到十进制的换算: 0 1 0 0 1 0 1 03 2 1 07 6 5 4补充C语言程序设计*62进制八进制到十进制: 1 2 32 1 0八进制8的指数位补充C语言程序设计*63进制十六进制到十进制: 1 2 32 1 0十六制16的指数位补充C语言程序设计*64进制十六进制到十进制: A 1 F2 1 0补充C语言程序设计*65进制十进制到 N 进制: 1 2 32 1 0x位:mod(i/pow(N,x),N)C语言实现:n2 n1 n0 0位:i = i/N ; n0 = i%N; 1位:i = i/N ; n1 = i%N; 2位:i = i/N ; n2 = i%N;2补充01C语言程序设计*66进制十进制到 16 进制: 1 2 32 1 00位:x0 = 123 % 16; //11 1位:i = 123/16=7; x1 = 7%16;// 77B补充C语言程序设计*67进制十进制到 8 进制: 1 2 32 1 00位:x0 = 123 % 8; //3 1位:i = 123/8=15; x1 = 15%8;//7 2位:i = 15/8=1;x2 = 1%8;//1 173补充C语言程序设计*68b, B, KB, MB, GB, TB¡bit,中文叫法:位¡Byte,中文叫法:字节¡Kilobyte(KB),中文叫法:K¡Megabyte(MB),中文叫法:兆¡Gigabyte(GB),中文叫法:G¡Terabyte(TB),中文叫法:T1 TB 。

下载提示
相似文档
正为您匹配相似的精品文档