5、程序举例|# nclude <stdio h #define size 10 例读10个整数存入 maint i int x[], i, max, min printf("Enter 10 integers: n") for(i=0; K<SIZE; i++) 步骤: i printf("%d: , 1+1) (a)先令 maxmin=/!can"d"&x) 1.输入:or循环输入10 2.处理 max-min=XOJ (b)依次用x订和 max,m for(=1i<SIzE;计+) 若若 maX<X max i if(max<xi max-x[1 min>X min- if(min>x[i] min=x[i 3.输出:max和min printf("Maximum value is %d\n", max) printf("Minimum value is%d n", min) It15
5、程序举例 例 读10个整数存入数组,找出其中最大值和最小值 步骤: 1. 输入:for循环输入10个整数 2. 处理: (a) 先令max=min=x[0] (b) 依次用x[i]和max,min比较(循环) 若max<x[i],令max=x[i] 若min>x[i],令min=x[i] 3. 输出:max和min #include <stdio.h> #define SIZE 10 main() { int x[SIZE],i,max,min; printf("Enter 10 integers:\n"); for(i=0;i<SIZE;i++) { printf("%d:",i+1); scanf("%d",&x[i]); } max=min=x[0]; for(i=1;i<SIZE;i++) { if(max<x[i]) max=x[i]; if(min>x[i]) min=x[i]; } printf("Maximum value is %d\n",max); printf("Minimum value is %d\n",min); } lt15
例用数组求 Fibonacci数列前20个数 F1=1 F2=1 F=F-+Fa-2 > include <stdio.h> 分析:定义一个含有 20个元素的数组f,即 main( int f[] i int i 其中f0]=1,f11=1, ntf20}={1,1}; fn]=fn-1]+fn-2](n2) for(=2;1<20;i++) f1=f1-2+fi-1 用一个循环结构:让循环变1fo(=0;<20;+) 量n从2到20,循环体为 fn=fn-1+fn-2 i if(1%5==0) printf("n") printf("%12d"fD) 程序如右面所示: It16
例 用数组求Fibonacci数列前20个数 #include <stdio.h> 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]); } } 分析:定义一个含有 20个元素的数组f ,即 int f[20] ; 其中 f[0]=1,f[1]=1, f[n]=f[n-1]+f[n-2] (n≥2) 用一个循环结构:让循环变 量n从 2到 20 ,循环体为 f[n]=f[n-1]+f[n-2] 程序如右面所示: lt16
例用冒泡法对8个数排序(输入时数据无次序,输出按升序) 排序过程:首先把八个数放到数组a9]中。 a[1]l=38、a[2]=49、a[3}=65、a[4}=76、a[5]=13、a[6]=27、 a[7]30、a[8]=97。 (1)比较第一个数与第二个数,若为逆序a[]>a2] 则交换值;然后比较第二个数与第三个数若为逆序 a[2]>aB3],则交换值;依次类推,直至第7个数和第8 个数比较为止——第一趟冒泡排序,结果最大的数 被安置在最后一个元素位置上,即在a8]中。 (2)对前7个数进行第二趟冒泡排序,结果使次大 的数被安置在第7个元素位置,即在a[7]中。 (3)重复上述过程,共经过7趟冒泡排序后,排序 结束
例 用冒泡法对8 个数排序(输入时数据无次序,输出按升序) 排序过程:首先把八个数放到数组a[9] 中。 a[1] =38、a[2]=49、a[3]=65、a[4]=76、a[5]=13、a[6]=27、 a[7]=30、a[8]=97 。 (1)比较第一个数与第二个数,若为逆序a[1]>a[2], 则交换值;然后比较第二个数与第三个数,若为逆序 a[2]>a[3],则交换值;依次类推,直至第7个数和第8 个数比较为止——第一趟冒泡排序,结果最大的数 被安置在最后一个元素位置上,即在a[8]中。 (2)对前7个数进行第二趟冒泡排序,结果使次大 的数被安置在第7个元素位置,即在a[7]中 。 (3)重复上述过程,共经过7趟冒泡排序后,排序 结束
例3838 3838 13131313 4949 4913 27 272727 65651327 3030 30 76 327303838 327304949 273065 65 3076 76 97 97 第 初始关 第 第第四 第第 第 键趟趟趟 五六七 n=8
例 38 49 65 76 13 27 30 97第一趟 38 49 65 13 27 30 76第二趟 38 49 13 27 30 65第三趟 38 13 27 30 49第四趟 13 27 30 38第五趟 13 27 30第六趟 49 38 65 97 76 13 27 30初始关键字 n=8 38 49 76 9713 2797 9730 97 13 76 76 7627 30 13 2765 3065 65 13 13 49 4930 4927 3827 380 38 13 27第七趟
#include <stdio. h main 输入n个数给a[到a[n i int a[ll], i,j, t; for j=l to n-1 printf("Input 10 numbers: n") for(=1;i<11;i++) for i=l to n-J scanf("%od", &aiD) 真 ai>ai+l printf("In' for(=1j<=93j++) aiai+1l for(i=1;i<=10ji++) if(ai>ai+ID 输出a[到an {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("The sorted numbers: n") for(1=1;i<11;i++) printf(" %d",aiD) It17
输入n 个数给a[1] 到 a[n] for j=1 to n-1 for i=1 to n-j a[i]>a[i+1] 真 假 a[i]a[i+1] 输出a[1] 到 a[n] #include <stdio.h> main() { int a[11],i,j,t; printf("Input 10 numbers:\n"); for(i=1;i<11;i++) scanf("%d",&a[i]); printf("\n"); for(j=1;j<=9;j++) for(i=1;i<=10-j;i++) 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=1;i<11;i++) printf("%d ",a[i]); } lt17