实验6:循环结构程序设计
- 格式:doc
- 大小:39.50 KB
- 文档页数:8
实验6:循环结构程序设计
实验名称:循环结构程序设计成绩:
实验日期:年月日实验报告日期:年月日
一、实验目的
1、掌握while,do-while,for循环的语法结构与应用。
2、掌握while,do-while循环的区别。
3、掌握Turbo C单步执行调试程序的方法。
二、实验内容
完成程序题:
1、用三种循环结构,求1000以内奇数的和。
2、用while,do-while循环求i-10的连加和,i由用户输入。
3、有一堆零件(100-200个之间),如果以4个零件为一组进
行分组,则多2个零件;如果以7个零件为一组进行分组,则多3个零件;如果以9个零件为一组进行分组,则多5个零件。编程求解这堆零件总数。
提示:用穷举法求解。即零件总数x从100-200循环试探,如果满足所有几个分组已知条件,那么此时的x就是一个解。分组后多几个零件这种条件可以用求余运算获得条件表达式。
三、实验要求
1、实验前编制源程序、对第2个实验内容需要准备测试数据。
2、在Turbo C下完成程序的编辑、编译、运行。查看、分析程序
结果。
四、实验步骤、过程
1、编辑、编译、运行程序题1。
2、编辑、编译、运行程序题2,分别使用数据3,15做测试。
3、编辑、编译、运行程序题3。
五、源程序清单、测试数据、结果。
1、用三种循环结构,求1000以内奇数的和。
(1)用while结构实现
void main()
{
long sum;
int i,item;
sum=0,i=0,item=2*i+1;
while(item<1000)
{
sum=sum+item;
i++;
item=2*i+1;
}
printf("1+3+5+...999=%ld\n",sum); }
(2)用do-while结构实现
void main()
{
long sum;
int i,item;
sum=0,i=0,item=2*i+1;
do
{
sum=sum+item;
i++;
item=2*i+1;
}while(item<1000);
printf("1+3+5+...999=%ld\n",sum);
(3)用for结构实现
void main()
{
long sum;
int i,item;
for(sum=0,i=0,item=2*i+1; item<1000; i++,item=2*i+1) sum=sum+item;
printf("1+3+5+...999=%ld\n",sum);
}
运行结果:
1+3+5+...999=250000
2、用while,do-while循环求i-10的连加和,i由用户输入。(1)用while循环实现
main()
{
int sum=0,i;
printf("Input i:");scanf("%d",&i);
while(i<=10)
sum+=i;
i++;
}
printf("sum=%d\n",sum);
}
测试运行结果:
Input i:7
sum=34
Input i:15
sum=0
(2)用do-while循环实现
main()
{
int sum=0,i;
printf("Input i:");scanf("%d",&i); do
{
sum+=i;
i++;
}while(i<=10);
printf("sum=%d\n",sum);
}
测试运行结果:
Input i:7
sum=34
Input i:15
sum=15
3、穷举法搜索计算零件总数
main()
{
int x,flag=0;
for(x=100; x<=200; x++)
if(x%4==2&&x%7==3&&x%9==5) {
flag=1;
break;
}
if(flag)printf("x=%d\n",x);
else printf("no answer!\n");
}
运行结果:
x=122
六、实验出现的问题、实验结果分析
对于累加问题,获得的累加值可能超过变量允许的范围,出现溢出错误(逻辑错误-编译时不能发现)。程序题1:原来sum定义为int,后来改为long后程序获得了正确的结果。
七、实验小结和思考
1、变量类型的选择应当考虑变量的使用范围。
2、循环程序可以用三种结构实现,三种结构一般情况可以相互替
换。
3、while,do-while循环的区别:while先判断循环条件,如果
条件满足再执行循环体,如果条件不满足,循环体一次也不执行。
do-while先执行一次循环体再判断循环条件,以决定是否再次执行循环体,即就是说循环体至少执行一次。