5、程序举例|# nclude <stdio.h #define size 10 例读10个整数存入数mam i int x size, i, max, min; printf("Enter 10 integers: n) for(i=0 K<SIZE; 1++) 步骤 i printf("%d: 1+1) 1.输入for循环输入10 scanf( %d", &xi) 2.处理 (a)先令max=mm= X[Ol max=min=x0 (b)依次用对门和maxi=1SZE计+) 若mx对令m(max)m=x 若mn>x(i]令min if(min>xi min=x[i 3.输出:max和min printf("Maximum value is %d n", max) printf("Minimum value is%dn", 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 (n=1) F2=1 F=F+F -2 (n≥3) #include <stdio.h> 分析:定义一个含有 20个元素的数组f,即 maino int f[20] i int 其中0=1,F1 int f(20=& fn]=fn-1]+fn2](n>2) for(=2;1<20;i++) 印i=fi-2]+fi-1] 用一个循环结构:让循环变1r(=020+) 量n从2到20,循环体为 fn=fn-1+f[n-2 i if(1%5==0)printf("n pin(012d",f1); 程序如右面所示 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]=38、a[2]=49、a[3}=65、a[4]=76、a[5]-13、a[6]=27、 a[7]=30、a[8]=97。 (1)比较第一个数与第二个数,若为逆序a[a[2], 则交换值;然后比较第二个数与第三个数若为逆序 a[2]}>a[3],则交换值;依次类推,直至第7个数和第8 个数比较为止—第一趟冒泡排序,结果最大的数 被安置在最后一个元素位置上,即在a[8]中。 (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趟冒泡排序后,排序 结束
例38 8383813131313 49 494913 27 272727 6565 1327 303030 761327303838 1327304949 273065 65 3076 76 9797 第 初始关键字 第 第第四 第 五 趟 第六趟 第七趟 趟 趟 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> maint 输入n个数给a[]到an int a i, j, t for i=l to n-1 printf("Input 10 numbers: In") for(i=1;j<11;i++) for i=l to n- scanf("%d", &a: 真 a[i]>a[i+1] printf("In for(j=1j<=9++) ail<→a计+ 1 for(i=1;j<=10j;i++) if(ai>ai+1] 输出a]到an] {t=a[i];a[ij=a[i+1];a[i+1]=t;} printf( "The sorted numbers: n") for(i=1;1<1l;i++) printf("%d"ai) 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