C语言程序设计实验报告——实验二
- 实验二 算法及其表示
- 一、实验目的及要求
- 二、实验环境
- 三、实验内容
- 实验题目(1)
- 实验题目(2)
- 实验题目(3)
- 四、实验结果与分析
- 实验题目(1)
- 实验题目(2)
- 实验题目(3)
实验二 算法及其表示
一、实验目的及要求
1、了解算法的含义及特性;
2、掌握算法的不同种表示方法:自然语言、流程图、N-S图、计算机语言;
3、理解结构化程序设计方法。
二、实验环境
1、硬件要求:计算机一台。
2、软件要求:Windows操作系统,Dev-C++或VC++ 6.0编译环境
三、实验内容
实验题目(1)
编写程序,计算1到100的和,并用自然语言描述算法。
这道题目,从本质上来看,算法并不难,用C语言程序实现这个算法也不难。但是比较麻烦的是用自然语言描述算法,这对于一个文笔功夫不是很好的博主来说,有点点麻烦😂😂😂。不过,只要基础扎实,再麻烦也不算问题。
源代码如下:
方法① - -最笨的方法:使用for(while、do-while也可)循环,从1累加到100,最终得到结果
#include<stdio.h>
int main()
{
int i,sum=0;
for(i=1;i<=100;i++){
sum+=i;
}
printf("1到100的和是:%d",sum);
return 0;
}
方法② - -利用数学算法(等差数列求和公式):(首项+末项)× 项数 ÷ 2,很简单就能得到结果。
#include<stdio.h>
int main()
{
int sum=(1+100)*50;
printf("1到100的和为:%d",sum);
return 0;
}
至于用自然语言描述嘛,博主就不写啦😄😄😄
实验题目(2)
计算1+1/2-1/3+1/4+…….-1/99+1/100,请设计一个算法,并用流程图表示算法。
这道题,其实也不太难,算法都是高中数学的数列那一章比较常见的,用程序设计语言实现起来也不是很难,注意细节就行。至于流程图嘛,高中数学必修三的老套路了,全国I(乙卷)高考数学选择题中的送分题之一😂。
源代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int i;
double sum=1;
for(i=2;i<=100;i++)
sum+=pow(-1.0,(double)i)/(double)i;
printf("1+1/2-1/3+1/4+……-1/99+1/100的和为:%lf",sum);
return 0;
}
对于流程图,其实很简单,高中数学应该都学过的。
实验题目(3)
给出一个大于3的或等于3的正整数,判断它是不是素数,请设计一个算法并用N-S图表示
这道题目就是一个实现判断素数算法的题目,难度不大,N-S图的绘制难度也不高,提前了解过,有点基础的应该很快就能够画出来。
源代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int num,i;
printf("请输入不小于3的整数:");
scanf("%d",&num);
int n=(int)sqrt((double)num);
if(num<3){
printf("输入数字不符合要求!");
}
else{
for(i=2;i<=n;i++){
if(num%i==0){
break;
}
}
if(i>n){
printf("整数%d是素数!",num);
}
else{
printf("整数%d不是素数!",num);
}
}
return 0;
}
N-S图如下:
四、实验结果与分析
实验题目(1)
很容易知道1到100的和为5050,程序运行截图如下:
实验题目(2)
根据式子可以找到规律,然后就方便运算了,程序运行截图如下:
实验题目(3)
由于博主添加的判断比较多,所以截图有三个,如下所示:
当输入数字不符合要求时的运行结果
当输入的数字是素数时的运行结果
当输入的数字不是素数时的运行结果
更多推荐
C语言程序设计实验报告——实验二
发布评论