实验五(c语言实验报告)

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

上机题5
一.实验目的:输出1+2+3+…+100和1^+2^+3^+…+100^的值
二.实验设备:计算机
三.实验内容:
1)实验题目:编写程序:求1+2+3+...+100和1^+2^+3^+ (100)
2)算法分析:
(1)int s1=0,i=1,double s2=0;
(2)判断i<=100?是否成立,是则执行下一步;否则结束循环;
(3)s1=s1+i,s2=s2+i*i,i=i+1;返回第二步;
(4)输出s1,s2的值。

3).流程图:省略
4).源代码:
#include<stdio.h>
main()
{int s1,i;
double s2;
s1=0,s2=0,i=1;
while(i<=100)
{s1+=i;
s2=s2+i*i;
i++;
}
printf("s1=1+2+3+…+100=%d\n",s1);
printf("s2=1^+2^+3^+…+100^=%lf\n",s2);
}
5).输出数据(截屏复制):
四、数据结果分析或实验体会:学会for的使用
上机题7
一.实验目的:在屏幕上输出一个用“*”组成的菱形。

二.实验设备:计算机
三.实验内容:
1.)实验题目:编写程序:在屏幕上输出一个用“*”组成的菱形,如
下图所示,并编写程序改变其大小。

从20列开始输出*
………………………………*
***
*****
……………………………*******
将该文件数保留 *****
在变量t中 ***
*
由“*”组成的菱形
2.)算法分析:利用循环控制行数,“”和“*”
3.)源代码:
1.为变形前的: 2.变形后的:
#include<stdio.h> #include<stdio.h>
main() main()
{int i,j,k,t; {int i,j,k,t;
for(i=0;i<=3;i++) for(i=0;i<=5;i++)
{for(j=0;j<=20-i;j++) {for(j=0;j<=20-i;j++)
printf(" "); printf(" ");
for(k=0;k<=2*i;k++) for(k=0;k<=2*i;k++)
printf("*"); printf("*");
printf("\n"); printf("\n");
} }
t=j; t=j;
for(i=0;i<=2;i++) for(i=0;i<=4;i++)
{for(j=0;j<=t+i;j++) {for(j=0;j<=t+i;j++)
printf(" "); printf(" ");
for(k=0;k<=4-2*i;k++) for(k=0;k<=8-2*i;k++)
printf("*"); printf("*");
printf("\n");}} printf("\n");}}
4.)输出数据(截屏复制):
(1)(2)
四、数据结果分析或实验体会:
利用空格和“*”可以组成各种图形
上机题8
一.实验目的:求100以内的整数中为13的倍数的最大数
二.实验设备:计算机
三.实验内容:
1.)实验题目:(1)编写程序输出100以内的整数中为13的倍数的最
大数
(2)将“break;”改成“continue;”后,分析程序
的运行结果
2.)算法分析:(1)int i=100;
(2)判断i>=0,是则执行下一步;否则退出循环
(3)判断i%13是否等于0,是则中断循环,输出i
的值;否则返回第二步;
3.)源代码:
(1) #include<stdio.h> (2)#include<stdio.h>
main() main()
{int i; {int i;
for(i=100;i>=0;i--) for(i=100;i>=0;i--)
if(i%13==0)break; if(i%13==0)contiune;
printf("%d\n",i); printf("%d\n",i);
} }
5.)输出数据(截屏复制)
(1)(2)
四、数据结果分析或实验体会:
要理解并区分break与continue的作用和效果
上机题9
一.实验目的:设s=1+2+…+n,求满足s>100时s的最下值。

二.实验设备:计算机
三.实验内容:
1.)实验题目:编写程序实现:设s=1+2+…+n,求满足s>100时s的最下
值;
2.)算法分析:(1)int i=1,s=0;
(2)判断i<=20是否成立,是则下一步;否则退出循环;
(3)s=s+i,i++;if(s>100)break;否则返回第二步;
(4)输出s的值。

3.)源代码:
#include<stdio.h>
main()
{int i,s=0;
for(i=1;i<=20;i++)
{s=s+i;
if(s>100)break;
}
printf("s=%d\n",s);
}
4.)输出数据(截屏复制):
四、数据结果分析或实验体会:运用break达到控制结束的目的
上机题10
一.实验目的:找出2—5000中的所有完数
二.实验设备:计算机
三.实验内容:
1.)实验题目:一个数如果恰好等于它的因子之和,这个数就称为“完
数”,编写程序找出2—5000中的所有完数。

2.)算法分析:
(1)int s,i,x;s=0;s=2;
(2)判断x<=5000是否成立,是则执行下面循环;否则退出循环
(3)s=0;i=1;判断i<=x-1是否成立,是则执行下一步;否则退出循环,返回第二步;
(4)if(x%i==0),则s=s+i; if(s==x),则输出x的值
3.)源代码:
#include<stdio.h>
main()
{int s,i,x;
s=0;
for(x=2;x<=5000;x++)
{s=0;
for(i=1;i<=x-1;i++)
if(x%i==0)s=s+i;
if(s==x)printf("%d\n",x);}}
4.)输出数据(截屏复制):
四、数据结果分析或实验体会:认识到什么是完数,以及掌握for的用法
【上机题11】
一.实验目的:计算sinx的近似值,精确到0.0000001.
二.实验设备:计算机
三.实验内容:
1.)实验题目:编写程序,计算sinx的近似值,精确到0.0000001。

2.)算法分析:
(1)double s,x,a,b,c; int i; i=1,s=0,b=1;
(2)输入x;a=x;
(3)c=a/b;s=s+c;a=-a*x*x;b=b*2*i*(2*i+1); i++;
(4)判断c的绝对值是否大于0.000001,是则返回第三步;否则退
出循环,输出s的值。

3.)源代码:#include<stdio.h>
#include<math.h>
main()
{double s,x,a,b,c;
int i;
i=1,s=0,b=1;
scanf("%lf",&x);
a=x;
do
{c=a/b;
s=s+c;
a=-a*x*x;
b=b*2*i*(2*i+1);
i++;
}
while(fabs(c)>0.000001);
printf("%lf\n",s);
}
4.)输入数据(截屏复制):
5.)输出数据(截屏复制):
四、数据结果分析或实验体会:
进一步灵活运用while,for,do-while。

相关文档
最新文档