C_第二章_算法

1.程序=算法+数据结构

程序包括对数据的描述和对操作的描述:其中对数据的描述是数据结构对操作的描述叫算法。
而数据和操作的关系呢:数据是操作的对象,操作的目的就是对数据进行加工处理,得到预期的结果。

2.算法

算法也可以说是做事情的步骤,算法好就可以节省时间、空间的资源。
计算机算法包含两大类:

  1. 数值运算算法:求数值解,此类算法有固定的模型,将它们编写成册,供用户调用。
  2. 非数值运算算法:常见于事务管理领域,此类算法运用广泛,只有一些应用较多的有成熟的算法可以使用,更多的还需要自己来设计。

3.简单算法

  • 产生一个随机数数组
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int array[10],*point;
	for(point=array;point<array+10;point++)
	{
		*point=rand()%90+10;   //rand()随机产生一个浮点数,但是没有区间,然后对90取余,加上10,就是0到100的整数了。
		printf("%d\n",*point);
	}
	return 0;
}

结果:
在这里插入图片描述

  • 随机生成五十个人的成绩,选出其中大于80的为优秀
#include <stdio.h>
#include <stdlib.h>            //stdlib.h头文件是标准库函数头文件,里面有c和c++常用的系统函数
int main()
{
	int array[50],*point,i;
	for(i=1,point=array;point<array+50;point++,i++)   //i从1开始作为学号,指针指向数组开头
	{
		*point=rand()%90+10;   	                      //随机生成10到100的数
		printf("%d,%d  ",i,*point);					  //输出每个人的学号和成绩
		if(i%10==0) printf("\n");					  //每输出十个人换行一次
		if(*point>80)                                 //成绩大于80为优秀,优秀的人输出他的学号
			printf("优秀:%d  ",i);
	}
	printf("\n");
	return 0;
}

结果:
在这里插入图片描述

4.算法特性

  1. 有穷性:操作步骤有限。
  2. 确定性:每一步都很确定要做什么。
  3. 有零个或多个输入,但至少有一个输出。
  4. 有效性,算法的每一个步骤都能有效执行。

5.表示算法的方法

  1. 自然语言表示:只能表示些特别简单的东西。
  2. 流程图表示:用各种图框表示各种操作。
    在这里插入图片描述
    判断2000到2500年之间是闰年的年份:
    在这里插入图片描述
  3. 三种基本结构
    • 顺序结构
    • 选择结构
    • 循环结构
      • 当型循环(while型)
      • 直到型循环(until型,也就是do…while型)
  4. N-S流程图(也叫盒图)
    - 顺序结构
    - 选择结构
    - 循环结构(分为当型和直到型)
    在这里插入图片描述
    判断是否是闰年的算法用盒图表示:
    在这里插入图片描述
  5. 用伪代码表示
    介于自然语言和计算机语言之间,兼有他们两个的优点,便于理解,但是不能在计算机上运行,有些地方更偏向于计算机语言。
  6. 用计算机语言表示
    也就是那些高级语言啥的。

6.结构化程序设计方法

为保证结构化的程序:

  • 自顶向下
  • 逐步细化
  • 模块化设计
  • 结构化编码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值