C语言程序设计实验报告模版实验5循环控制
凯里学院 C语言程序设计 实验报告
××××× 专业×× 年级×× 班,学号×××××× 姓名××成绩
合作者 实验日期 年 月 日
指导教师 评阅日期 年 月 日
实验五 循环结构程序设计
一、实验目的:
(1)熟练掌握for 语句、while 语句、do-while 语句实现循环的方法;
(2)理解循环嵌套及其使用方法;
(3)掌握break 语句与continue 语句的使用;
(4)掌握用循环实现一些常用算法(如穷举、迭代、递推等)。
二、实验内容:
(1)输入一组整数,统计其中奇数偶数个数,直到遇到回车为止。
(2)印如下图案
*
* * *
* * * * *
* * * * * * *
三、实验步骤:
编程序并上机调试运行。
(1)输入一组整数,统计其中奇数偶数个数,直到遇到回车为止。
1)算法分析:可设一整型变量x,循环的输入整数的值,若x%2==0 即为偶数,否则是奇数。
提示:循环条件可在while 语句后的括号中出现,也可以用break 语句控制。
2)根据分析结果写出源程序。
程序一:
#include
void main( )
{
int x,xo=0,xj=0 ;
/* 将偶数个数xo 与奇数个数xj 赋0 值*/
scanf("%d",&x);
/* 先输入一个整数*/
/* 输入不是回车时循环*/
while(x!='\n')
{
if(x%2==0)xo=xo+1 ;
else xj=xj+1 ;
scanf("%d",&x);
}
/* 循环输入其余整数*/
printf("xo:%d,xj:%d",xo,xj);
}
程序二:
#include
void main( )
{
int x,xo=0,xj=0 ;
/* 在循环内部用break 语句控制循环条件*/
while(1)
{
scanf("%d",&x);
if(x=='\n')break ;
if(x%2==0)xo=xo+1 ;
else xj=xj+1 ;
}
printf("xo:%d,xj:%d",xo,xj);
}
分析:
(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
void main( )
{
int i,j ;
/*定义循环控制变量*/
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
prinf(" ");
/* 输出4-i 个空格*/
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}
程序结果如下图:
四、实验心得(体会):
通过本次C语言上机实验,我对循环结构程序设计的理解如下:
(1)本实验是练习循环控制,要求要熟悉掌握用while语句,do-while语句和for语句实现循环的方法。在使用这几个实现循环的语句时要特别注意:
在使用while时,要注意循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句形式出现。在循环体中就有使循环趋向于结束的语句,否则就成为死循环,不能跳出循环。
在使用do-while时,要注意do-while的执行是先执行一次特定的循环体语句,然后判别表达式,,当表达式的值为真时,再返回重新循环体语句。这是与while语句最大的区别。
在使用for语句时,要特别注意前两个表达式后一定要用分号作分隔符且当省略表达式时,一定不能省略分号。
在使用循环的方法实现一些常用算法,如穷举、迭代、递推等应注意这些方法所使用时要理解其运算步骤,从而更加高效的使用这些方法。
在实验中还要注意的就是输入程序的正确,调试时及时发现并改正错误