实验2-循环结构程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 循环结构程序设计

一、实验目的

1.学习循环语句for、while和do-while语句的使用方法。

2.学习用循环语句实现各种算法,例如穷举法、迭代法等。

3.进一步熟悉C语言集成环境的使用方法

二、实验内容

1.用while循环实现数据统计问题。:从键盘输入一批任意数量的整数,统

计其中不大于100的非负数数值的个数。

2.编写并调试程序,使用do-while循环控制语句实现上面的数据统计问

题。调试数据仍参照上面给出的几种情况设计使用。

3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题。

4.阶乘累加问题。编写程序,求1+2!+3!+…+n!的值。

三、实验指导

1.用while循环实现数据统计问题。

⏹编程分析

由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不确定的。在进行程序设计时,确定循环控制的方法是本实验的一个关键问题。循环控制条件可以有多种确定方法:

(1).使用一个负数作为数据输入结束标志。

(2).输入一个数据后通过进行询问的方式决定是否继续输入下一个数

据。

⏹参考程序

参考程序一

/* 使用负数作为数据输入结束标志的程序 */

#include "stdio.h"

void main()

{

int m,counter=0;

while(1)

{

printf("请输入一个整数:");

scanf("%d",&m);

if(m<0)

break;

if(m<=100)

counter++;

printf("\n");

}

printf("符合要求的整数个数为: %d\n",counter);

}

参考程序二

/* 通过进行询问的方式决定是否继续输入下一个数据的程序 */ #include

int main()

{

int m,counter=0;

char ask;

while(1)

{

printf("请输入一个整数:");

scanf("%d",&m);

getchar();

if(m>=0&&m<=100)

counter++;

printf("继续输入下一个数据?(Y/N)");

ask=getchar();

getchar();

if(ask!='y'&&ask!='Y')

break;

printf("\n");

}

printf("符合要求的整数个数为: %d\n",counter);

}

程序调试

这里只对“参考程序一”的调试数据进行设计。该程序输入数据时,应考虑多种数据组合,对每一组数据察看并分析结果。例如:

(1).输入的一组数据之间全部以空格分隔,只有最后一个数为负数,以

回车键结束。如:

16 35 7 –-10

(2).输入的一组数据之间全部以空格分隔,在负数之后又有正数数据,

最后一个数不为负数,以回车键结束。如:

16 35 7 –-10 96 17

(3).输入的一组数据之间全部以空格分隔,输入数据中有多个负数,以

回车键结束。如:

16 35 7 –-10 96 17 –-87 7

(4).输入的数据中有大于100的整数。如:

16 35 7 –10 96 117 –87 267 66

(5).数据之间既用空格分隔,也用回车键分隔。如:

76 35 376 22 717

96 67

96 17 –87 719 66 98 2 -16 31

(6).每输入一个数据后均按回车键。

(7).输入的第一个数据即为负数。

(8).在输入的数据中使用数值很大的整数。如:

17 66778 98765 17 899 -109 87

⏹在上面的“参考程序一”中,使用了常数“1”作为循环控制的条件,

这是常用的循环控制方式。请修改上面的程序,不使用常数循环条件,仍然使用while语句实现数据统计问题。

2.编写并调试程序,使用do-while循环控制语句实现数据统计问题。

⏹参考程序

/* 使用负数作为数据输入结束标志的程序 */

#include

int main()

{

int m,counter=0;

do

{

printf("请输入一个整数:");

scanf("%d",&m);

if(m<0)

break;

if(m<=100)

counter++;

printf("\n");

}while(1);

printf("符合要求的整数个数为: %d\n",counter);

return 0;

}

⏹调试指导

调试数据仍参照上面给出的几种情况设计使用。

3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题。

⏹参考程序

/* 用for循环控制语句实现的数据统计问题程序 */

#include

int main()

{

int m,counter;

for(counter=0;1;)

{

printf("请输入一个整数:");

scanf("%d",&m);

if(m<0)

break;

if(m<=100)

counter++;

printf("\n");

}

printf("符合要求的整数个数为: %d\n",counter);

return 0;

}

注意:

for循环控制语句的一般格式通常有三个表达式,本参考程序中使用的for循环控制语句在格式上只有两个表达式。请读者注意学习这种用法。

⏹请修改程序,使用完整格式的for循环控制语句实现上面的数据统计问

题。

4.阶乘累加问题。

⏹编程分析

(1).本实验内容是求解阶乘问题。

(2).求n!用一个循环即可实现。

相关文档
最新文档