Loading... # 冒泡法-(起泡法) 来源:《C语言程序设计(第五版)》p144页 **如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次的两两比较,在第j趟比较中要进行n-j次比较。** ```C #include <stdio.h> int main() { int a[10]; int i,j,t; printf("input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<strlen(a)-1;j++)//进行9次循环,实现9趟比较 for(i=0;i<strlen(a)-1-j;i++)//在每一趟中进行9-j次比较 if(a[i]>=a[i+1])//相邻两个数进行比较 {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("the sorted numbers:\n"); for(i=0;i<10;i++) printf("%d",a[i]); ptrintf("%d",a[i]); printf("\n"); return 0; } ``` # 斐波那契数列(Fibonacci) 来源:《C语言程序设计(第五版)》p129页 **这个数列的特点是-第1,2两个数为1,1。从第三个数字开始,该数是其前面两个数之和。** 有一个古典数学问题:有一对兔子,从出生之后第三个月起每个月都生一对兔子。小兔子长到第3个月之后每个月又生一对兔子。假设所有的兔子都不死,问每个月的兔子总数为多少? 输出40个月的兔子: ```C #include <stdio.h> int main() { int f1=1,f2=1; int i; for(i=1;i<=20;i++)//没个月输出2个月的数据,故循环20次即可 { printf("%12d %12d,f1,f2");//输出已知的两个月的兔子数 if(i%2==0)printf("\n"); f1=f1+f2;//计算下一个月兔子数,并存放在f1中 f2=f2+f1;//计算下两个月兔子书,并存放在f2中 } return 0; } ``` if语句的作用是使得输出4个数据后换行。i是循环变量,当i为偶数是换行,由于每次循环都要输出2个数据(f1,f2),因此i为偶数时意味着已输出了4个数,执行换行。 最后修改:2023 年 07 月 31 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 6 如果觉得我的文章对你有用,请随意赞赏