
一、实验目的
1、熟练掌握 for 语句、while 语句、do-while语句实现循环的方法;
2、理解循环嵌套及其使用方法;
3、掌握 break语句与 continue语句的使用;
4、掌握用循环实现一些常用算法。
二、实验预习
1、认真阅读本章教材中循环控制部分。
2、编写好所需要的程序。
三、实验指导
1、输入一组正整数,统计其中奇数偶数个数,直到遇到-1为止。
(1)算法分析:可设一整型变量 x,循环的输入整数的值,若x%2==0即为偶数,否则是奇数。
提示:循环条件可在 while 语句后的括号中出现,也可以用 break语句控制。
(2)根据分析结果写出源程序。
程序一:
#include main( ) { int x,xo=0,xj=0 ;/* 将偶数个数 xo与奇数个数 xj赋 0值 */ scanf("%d",&x);/* 先输入一个正整数 */ /* 输入不是-1时循环 */ while(x!=-1) { if(x%2==0)xo=xo+1 ; else xj=xj+1 ; scanf("%d",&x); }/* 循环输入其余正整数 */ printf("xo:%d,xj:%d",xo,xj); } 程序二: #include main( ) { int x,xo=0,xj=0 ; /* 在循环内部用 break 语句控制循环条件 */ while(1) { scanf("%d",&x); if(x==-1)break ; if(x%2==0)xo=xo+1 ; else xj=xj+1 ; } printf("xo:%d,xj:%d",xo,xj); } (3)在 c编辑环境下编辑源程序。 (4)编译,直到没有错误。 (5)运行,输入: 13 16 7 23 68 99 86 10 (6)查看结果,输出: xo:3,xj:4 2、打印如下图案 * *** ***** ******* (1)算法分析:从图案中找出行数,空格数,星号数间的关系如下: 行数 空格数 星号数 1 3 1 2 2 3 3 1 5 4 0 7 I 4-i 2*i-1 可用双重循环控制整个图案的输出。若用循环变量 i,j 分别控制外层,内层循环,则i 的取值从1 到4,表示行数,在每行中要确定前面空格个数和星号个数,空格个数是 4-i,星号个数是 2*i-1。 (2)根据分析结果写出源程序 #include main( ) { int i,j ;/*定义循环控制变量 */ for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(" "); /* 输出 4-i个空格 */ for(j=1;j<=2*i-1;j++) printf("*"); printf("\\n"); } } (3)在 C编辑环境下编辑源程序。 (4)编译,直到没有错误。 (5)运行。因不需输入,故此程序运行时仅是屏幕闪一下就又回到编辑环境了。 (6)查看结果。输出题目要求的图案。 四、实验内容 1、在C 编辑环境下编辑实验指导中给出的程序,编译并运行。 2、完成如下题目: (1)一球从 100 米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第 10次落地时,共经过多少米?第 10 次反弹多高? (2)设定如下实验题目:打印下面的图案 ***** **** *** ** * 根据以上题目要求编程并上机调试运行。 五、实验报告要求 实验结束后,应整理实验报告,其内容应包括: 1、实验目的、题目 2、每个实验题目的设计思路 3、写出程序源代码 4、写出程序运行结果 5、对实验结果进行分析、总结 (1) #include "stdio.h" main() { int i; double t,s; for(i=1,s=100,t=100;i<10;i++) { t=t/2.0; s=s+2*t; } t=t/2.0; printf("s=%f,t=%f",s,t); } (2) main( ) { int i,j ;/*定义循环控制变量 */ for(i=1;i<=5;i++) { for(j=1;j printf(" "); /* 输出i-1个空格 */ for(j=1;j<=6-i;j++) printf("*"); printf("\\n"); } }
