C语言程序设计-实验第三次上机实验报告
4.第三次实验
C语言程序设计 实验报告
专业 计算机科学与技术 班级 信安1302班 日期 2014.4.12 成绩
实验组别 第 3 次实验 流程控制实验 指导教师
学生姓名 学号 同组人姓名
实验名称 流程控制实验
4.1实验目的
1.掌握复合语句,if语句,switch语句的使用,熟练掌握for,while,do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。
2.掌握运用for,while,do-while语句来编写程序。
3.练习转移语句和标号语句的使用。
4.使用集成开发环境的调试功能:单步执行,设置断点,观察变量值。
4.2实验内容
(一)在不用数组的情况下求n个数的最大值最小值和平均值
源程序如下shangji3\chengxu14
#include
int main()
{
int max,min,n,x,i;
float s;
s=0;i=1;
printf("enter n:");
scanf("%d",&n);
printf("enter the first number:");
scanf("%d",&x);
s=s+x;
max=x;min=x;
do
{
scanf("%d",&x);
s+=x;
if(x>max) max=x;
else if(x
i++;
}while(i<=n-1);
printf("the max=%d\n",max);
printf("the min=%d\n",min);
printf("the average is %.2f\n",s/n);
return 0;
}
实验步骤:
步骤一:定义两个整型变量分别存放最大值最小值,定义一个整型变量用来存放输出的数的和,定义一个变量n用来存放应该输入的数的个数,定义一个变量i用来控制循环。
步骤二:键入n的值,输入第一个数的值,并将此值赋给最大值和最小值。在循环结束前,将后来输入的数分别与当前最大值和最小值比较,不断将目前的最大值和最小值分别赋给两个变量。在不断输入的过程中,将后来输入的数加到s上。
步骤三:循环结束,输出最大值和最小值,并将和除以n得平均值。
调试及编译过程:
测试数据:n=5,输入11,12,13,14,15
测试数据:n=5,输入15,14,13,12,11(反向输入)
出现的不足及修改:1.如何控制输入的数为n个时,本来将i的循环条件写为i<=n,发现这样写得输入n+1个数才能将输入流中的数送入运算器。这样的错误时由于没有完全弄明白do while循环的特点,后改为i<=n-1,这样输入倒数第二个数时还要进行最后一次循环,于是输入最后一个数。
(二)依据下列格里高利公式,计算圆周率πshangji3\chengxu15
#include
#define EPS 1e-6
int main()
{
int i,j;
double s;
for(s=0,i=1;(1.0/i)>EPS;i++)
{
j=(i%2)?1:-1;
s+=j*(1.0/(2* i-1));
}
printf("s=%.lf",4*s);
return 0;
}
实验步骤:
步骤一:在执行函数前定义精确度,定义两个整型变量分别控制循环和决定加上的数的正负.
步骤二:开始循环,控制循环结束的条件为再次加上的数的绝对值小于精确值。
步骤三:结束循环,将累次相加的结果输出。
调试及编译过程:
出现的不足及修改:无 运行结果:输出预期的结果。
(三)完全数是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和恰好等于它本身。完全数shangji3\chengxu16
#include
int wqs(int x);
int main()
{
int i;
for(i=1;i<=1000;i++)
{
if(wqs(i)) printf("%4d",i);
}
return 0;
}
int wqs(int x)
{
int i,s;