
例3用数组求Fibonacci数列前20个数 F1=1 (n=1) F2=1 (n=2) ,=f-1+F (n≥3) #include mainO 1] { int i; 2 2 2] intf[20]={1,1}; 3 3] for(i=2;i<20;i++) 5 f4] fi]=fi-2]+f[i-1] 5 f5] for(i=0;i<20;i++) if(i%5==0)printf("\n"); printf("%12d",fli]): 19 f19 f19]
例3 用数组求Fibonacci数列前20个数 f[0] f[1] f[2] f[3] f[4] f[5] f[19] . 1 1 f[19] 0 1 4 5 2 3 19 2 3 5 #include main() { int i; int f[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) { if(i%5==0) printf("\n"); printf("%12d",f[i]); } }

山积应丛伤 例4读10个整数存入数组,找出其中最大值和最小值 99 max 55 88 66 99 44 77 3 m 0 2 3 5 for(i=0;ix[l,令min=x[间 if(min>x[i])min=x[i]; 3.输出:max和min printf("Maximum value is %d\n",max) printf("Minimum value is %d n",min);
程序举例 步骤: 1. 输入:for循环输入10个整数 2. 处理: (a) 先令max=min=x[0] (b) 依次用x[i]和max,min比较(循环) 若maxx[i],令min=x[i] 3. 输出:max和min for(i=0;ix[i]) min=x[i]; } printf("Maximum value is %d\n",max); printf("Minimum value is %d\n",min); } 例 4读10个整数存入数组,找出其中最大值和最小值 55 0 88 1 66 2 99 3 44 4 77 5 889955 max 130 m

例5用简单选择法对10个数排序 排序过程: (1)首先通过n-1次比较,从个数中找出最小的,将它与第一个数 交换一第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换一第二趟选择排序 (3)重复上述过程,共经过-1趟排序后,排序结束
例 5 用简单选择法对10个数排序 排序过程: (1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数 交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换—第二趟选择排序 (3)重复上述过程,共经过n-1趟排序后,排序结束

99 88 66 55 44 77 or0
55 88 66 99 44 77 i k k 99 55 or()

k k↓ k↓ 例i=1 初始: [13 8 8- 76 27] k =2一趟: 13[27 65 977649 38] 二趟: 13 27 [6 97 7649 38] 三趟: 13 27 38 [9776 9 65] 四趟: 13 2738 49 [46 97 65] 五趟: 13 273849 65 [9776] 六趟: 13 2738496576[97]
例 初始: [ 49 38 65 97 76 13 27 ] k j i=1 13 49 i=2 一趟: 13 [38 65 97 76 49 27 ] 27 38 二趟: 13 27 [65 97 76 49 38 ] 三趟: 13 27 38 [97 76 49 65 ] 四趟: 13 27 38 49 [76 97 65 ] 五趟: 13 27 38 49 65 [97 76 ] 六趟: 13 27 38 49 65 76 [97 ] k k k k j j j j j j j j j j

#include <stdio.h main() 输入n个数给a]到an] { int a[l1]i,j,k,x; printf("Input 10 numbers:\n"); for i=1 to n-1 for(i=1;i<11;i++) k=i scanf("%d"&a[il); for j=i+l to n printf("n")方 for(i=1;i<10;i++) 真 a[j]<a[k] k-i; k-j forG=i+1;j<=10j++) 真 il=k if(a[j]<a[k])k=j; if (i!=k) 台a[k x-a[i];a[i]=a[k];a[k]=x;} 出a[1]到a[n printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%d "a[i]);
输入n 个数给a[1] 到 a[n] for i=1 to n-1 for j=i+1 to n 真 a[j] main() { int a[11],i,j,k,x; printf("Input 10 numbers:\n"); for(i=1;i<11;i++) scanf("%d",&a[i]); printf("\n"); for(i=1;i<10;i++) { k=i; for(j=i+1;j<=10;j++) if(a[j]<a[k]) k=j; if(i!=k) { x=a[i]; a[i]=a[k]; a[k]=x;} } printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%d ",a[i]); }

盛排序 一、已排好序的数组,现输入一个数,按原来的排序插 入到数组中 11 33 55 77 99 m>a9] 100 for(i=9;i>=0;i-) a[10]=m i进al>时 it1]=a叫 break a[i+1]=m
一、已排好序的数组,现输入一个数,按原来的排序插 入到数组中 排序 11 33 55 77 99 100 44 m >a[9] a[10]=m for(i=9;i>=0;i-) if(a[i]>m) a[i+1]=a[i] break a[i+1]=m

排序 一、已排好序的数组,现输入一个数,按原来的排序插 入到数组中 11 33 55 77 99 66 77 99 66 11 33 55
一、已排好序的数组,现输入一个数,按原来的排序插 入到数组中 排序 11 33 55 77 99 66 77 99 66 11 33 55

排序(选择法) for(i=0;i<=n-2,i++) {k=i, 早操排队问题 for(j=i+1;j<=n-1;j++) if(aljl<a[k]) 娄 奚 k=j; 赵 if(k!=i) {m=a[i];a[i=a[k];a[k]=m;}
早操排队问题 张 三 贾 六 赵 一 王 五 李 四 排序(选择法) for(i=0;i<=n-2;i++) {k= i; for(j=i+1;j<=n-1;j++) if(a[j]<a[k]) k=j; if(k!=i) { m=a[i];a[i]=a[k];a[k]=m;} }

用冒泡法对10个数排序 排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换 然后比较第二个数与第三个数;依次类推,直至第n-1个数和 第个数比较为止—第一趟冒泡排序,结果最大的数被安 置在最后一个元素位置上 (2)对前-1个数进行第二趟冒泡排序,结果使次大的数被 安置在第n-1个元素位置 (3)重复上述过程,共经过-1趟冒泡排序后,排序结束
用冒泡法对10个数排序 排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换; 然后比较第二个数与第三个数;依次类推,直至第n-1个数和 第n个数比较为止——第一趟冒泡排序,结果最大的数被安 置在最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被 安置在第n-1个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束