西电C语言课件04多分支结构和循环结构程序设计.ppt
落地-反弹 一球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹的高度是多少? 100m 50m 25m 12.5m 设: i: 落地次数计数 h: 每次落地时的高度 sum: 落地和反弹所经过的总长度 h1 h2 h3 h4 落地-反弹(续1) #include main( ) { sum -= h; printf("h=%lf, sum=%lf\n",h,sum); } TC2.0 循环体中必须包含能改变循环条件的语句,使得重复计算过程能够结束 sum += h; /*将本次落下的高度h累加到距离的总长度中*/ h = h / 2; /*反弹*/ sum = sum + h; /*将反弹的高度h累加到距离的总长度中*/ i = i + 1; double h = 100, sum = 0; int i; i = 1; /*落地次数*/ while (i <= 10) { } 反弹-落地 100m 50m 25m 12.5m 设: i: 落地次数计数 h: 每次落地时的高度 sum: 落地和反弹所经过的总长度 h1 h2 h3 h4 反弹-落地(续2) #include main( ) { h= h / 2; printf("h=%lf, sum=%lf\n",h,sum); } double h = 100, sum =100; int i; i = 1; /*反弹和落地次数*/ h = h / 2; /*反弹至前次落地高度的一半*/ sum = sum + h * 2; /*完成前次落地后的总距离+(前次落地后的反弹+本次落地)距离*/ i = i + 1; while (i <= 9) { } 例:分别对空格/数字/行数/花括号/其他字符计数。 * /输出7,5 * Programming in C 西安电子科技大学 - Xidian University * 练习 编写程序,输入x的值,按下式计算y的值。 练习 编写程序,输入x的值,按下式计算y的值。 #include #include int main( ) { double x,y; //float x,y; scanf("%lf",&x); if (x>=1 && x<2) { x = 2 * x + 5; printf("%lf\n ",y); } if (x>=2 && x<3) { x = x * sin(x) - 1; printf("%lf\n ",y); } if (x>=3 && x<4) { x = sqrt(1+x*x); printf("%lf\n ",y); } if (x>=4 && x<5) { x = x * x - 2 * x + 5; printf("%lf\n ",y); } return 0; } 练习 编写程序,输入x的值,按下式计算y的值。 #include #include int main( ) { double x,y; //float x,y; scanf("%lf",&x); if (x>=1 && x<2) { x = 2 * x + 5; } if (x>=2 && x<3) { x = x * sin(x) - 1; } if (x>=3 && x<4) x