实验5:循环结构程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、实验要求
1、实验前编制源程序、对第2个实验内容需要准备测试数据。
2、在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。
四、实验步骤、过程ຫໍສະໝຸດ Baidu
1、编辑、编译、运行程序题1。
2、编辑、编译、运行程序题2,分别使用数据3,15做测试。
3、编辑、编译、运行程序题3。
五、源程序清单、测试数据、结果。
}
测试运行结果:
Input i:7<CR>
sum=34
Input i:15<CR>
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);
实验
实验名称:循环结构程序设计成绩:
实验日期:年月日实验报告日期:年月日
一、实验目的
1、掌握while,do-while,for循环的语法结构与应用。
2、掌握while,do-while循环的区别。
3、掌握Turbo C单步执行调试程序的方法。
二、实验内容
完成程序题:
1、用三种循环结构,求1000以内奇数的和。
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、用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);
else printf("no answer!\n");
}
运行结果:
x=122
六、实验出现的问题、实验结果分析
对于累加问题,获得的累加值可能超过变量允许的范围,出现溢出错误(逻辑错误-编译时不能发现)。程序题1:原来sum定义为int,后来改为long后程序获得了正确的结果。
七、实验小结和思考
1、变量类型的选择应当考虑变量的使用范围。
}
(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);
2、用while,do-while循环求i-10的连加和,i由用户输入。
3、有一堆零件(100-200个之间),如果以4个零件为一组进行分组,则多2个零件;如果以7个零件为一组进行分组,则多3个零件;如果以9个零件为一组进行分组,则多5个零件。编程求解这堆零件总数。
提示:用穷举法求解。即零件总数x从100-200循环试探,如果满足所有几个分组已知条件,那么此时的x就是一个解。分组后多几个零件这种条件可以用求余运算获得条件表达式。
2、循环程序可以用三种结构实现,三种结构一般情况可以相互替换。
3、while,do-while循环的区别:while先判断循环条件,如果条件满足再执行循环体,如果条件不满足,循环体一次也不执行。do-while先执行一次循环体再判断循环条件,以决定是否再次执行循环体,即就是说循环体至少执行一次。
4、穷举法是利用计算机高速计算能力试探搜索求解复杂问题的一种很好的方法。
}
(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
}
测试运行结果:
Input i:7<CR>
sum=34
Input i:15<CR>
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);
相关文档
最新文档