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语言程序设计实验报告——实验二