如何使用算法编写C语言程序
C语言中,一个程序主要包括两方面的信息:数据结构和算法。数据结构是对数据的描述,在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式。算法是对操作的描述,即要求计算机进行操作的步骤。
程序=数据结构+算法
算法是解决“做什么”和“怎么做”的问题。做任何事情都要一定的步骤算法。这里主要介绍几种算法。
操作方法
- 01
Fibonacci数列算法: Fibonacci数列有如下特点:第1,2两个数的值为1,从第3个数开始,该数是其前面两个数之和。即: F1=1 (n=1) F2=1 (n=2) F3=F(n-1)+F(n-2) (n>=3) 这是一个有趣的数学问题:有一对兔子,从出生后第三个月起每个月都生一对兔子。小兔子长到第三个月后每个月又生一对兔子。假设所有兔子都不死,问每个月兔子总数是多少? 思想:在开始是,f1表示第一个月的兔子数,f2表示第二个月的兔子数,f3表示第三个月的兔子数。f3=f1+f2.然后求第四个月的兔子数时,需要第二个月和第三个月的兔子数。我们把f1作为本月前两个月的兔子数,f2作为本月前一个月的兔子数,f3即本月的兔子数。在求第四个月的兔子数时,把f2赋给f1,f3赋给f2,则第四个月的兔子数为f3=f2+f1。
- 02
数的排列之冒泡法也叫起泡法: 排序的方法有两种:一种是“升序”,从小到大,一种是“降序”,从大到小。 起泡法排序的基本思想:每次将相邻的两个数比较。将小的调到前头。若有6个数:9,8,5,4,2,0。第一次将最前面的8和9对调。第二次将第二和第三个数对调。。。。。。如此共进行5次,得到8-5-4-2-0-9的顺序,可以看到最大的9已“沉底”。而小的数上升,最小的数0已向上浮起一个位置。经过第一趟交换得到最大的数9.然后进行第二趟比较,最大的数沉底。 如此规律下去,可以推知:如果有n个数,则要进行n-1趟比较。在第一趟要进行n-1次两两比较,在第j次要进行n-j次比较。
- 03
打擂台算法: 打擂台算法的思路:打擂台算法怎么确定最后的优胜者。先找任一人上台,第二个人上去与之比武,胜者留在台上,再上去第三个人与刚才得胜的人比武,胜者留,败者下。以后每一个上台的人都与胜者比武,直到所有人都上台比过为止。最后留在台上的就是冠军。 问题:有一个3*4矩阵,要求出其中元素最大值,以及其所在最大值的行号和列号。 解决:先让a[0][0]做擂主,赋值给max,max用来存放当前已知最大的数。然后下个元素与其比较,大值赋给max。