第一篇:數(shù)組典型例題
數(shù)組典型例題
數(shù)組應用程序設計
1、從鍵盤輸入11個數(shù)存入一維數(shù)組中,先輸出下標為奇數(shù)的元素,再輸出下標為偶數(shù)的元素。
main(){float a[11];int i;for(i=0;i<=10;i++)
scanf(“%f”,&a[i]);for(i=1;i<=9;i+=2)printf(“%f,”,a[i]);for(i=0;i<=10;i+=2)printf(“%f,”,a[i]);printf(“n”);}
2、從鍵盤輸入11個數(shù)存入一維數(shù)組中,將下標為奇數(shù)的元素值取倒數(shù)后重新存入該數(shù)組中,并輸出所有元素。
main(){float a[11];int i;for(i=0;i<=10;i++)
scanf(“%f”,&a[i]);for(i=1;i<=9;i+=2)
a[i]=1/a[i];
/*因a[i]為float型,故不必寫作1.0/a[i]*/ for(i=0;i<=10;i++)printf(“%f,”,a[i]);printf(“n”);}
3、從鍵盤輸入11個數(shù)存入一維數(shù)組中,將左半部分的元素值取倒數(shù)后重新存入該數(shù)組中,并輸出所有元素。
解法1:
main(){float a[11];int i;for(i=0;i<11;i++)
scanf(“%f”,&a[i]);for(i=0;i<5;i++)
/*左半部分下標為0到4*/ a[i]=1/a[i];
for(i=0;i<11;i++)printf(“%f,”,a[i]);printf(“n”);} 解法2:
#define N 11 main(){float a[N];int i;for(i=0;i scanf(“%f”,&a[i]);for(i=0;i /*左半部分下標為0到N/2-1*/ a[i]=1/a[i]; for(i=0;i 4、從鍵盤輸入11個數(shù)存入一維數(shù)組中,將右半部分的元素值取相反數(shù)后重新存入該數(shù)組中,并輸出所有元素。 解法1: main(){float a[11];int i;for(i=0;i<11;i++) scanf(“%f”,&a[i]);for(i=6;i<11;i++) /*右半部分下標為6到10*/ a[i]=-a[i]; for(i=0;i<11;i++)printf(“%f,”,a[i]);printf(“n”);} 解法2: #define N 11 main(){float a[N];int i;for(i=0;i scanf(“%f”,&a[i]);for(i=(N+1)/2;i<=N-1;i++) /*右半部分下標為(N+1)/2到N-1*/ a[i]=-a[i]; for(i=0;i 5、求出斐波那契數(shù)列的前20項并輸出。 main(){long f[20]={1,1};int i;for(i=2;i<=19;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<=19;i++)printf(“%12ld”,f[i]);} 6、從鍵盤輸入10個數(shù),求出其中的最大數(shù)并輸出。 main(){int a[10],max,i;for(i=0;i<=9;i++)scanf(“%d”,&a[i]);max=a[0];for(i=1;i<=9;i++){if(a[i]>max)max=a[i];} printf(“max=%dn”,max);} 7、從鍵盤輸入10個數(shù),求出其中的最大數(shù)和最小數(shù)并輸出。 解法1: main(){int a[10],max,min,i;for(i=0;i<=9;i++)scanf(“%d”,&a[i]);max=a[0];for(i=1;i<=9;i++){if(a[i]>max)max=a[i];} min=a[0];for(i=1;i<=9;i++){if(a[i] main(){int a[10],max,min,i;for(i=0;i<=9;i++)scanf(“%d”,&a[i]);max=min=a[0];for(i=1;i<=9;i++){if(a[i]>max)max=a[i];if(a[i] /*或else if(a[i] rintf(“max=%d,min=%dn”,max,min);} 8、從鍵盤輸入11個數(shù)存入一維數(shù)組a中,再將其中的值按相反的順序存入數(shù)組b中并輸出。 解法1: main(){int a[11],b[11],i;for(i=0;i<11;i++) scanf(“%d”,&a[i]);for(i=0;i<11;i++) {b[i]=a[10-i];printf(“%d,”,b[i]);} printf(“n”);} 解法2: #define N 11 main(){int a[N],b[N],i;for(i=0;i scanf(“%d”,&a[i]);for(i=0;i {b[i]=a[N-1-i];printf(“%d,”,b[i]);} printf(“n”);} 8A、從鍵盤輸入11個數(shù)存入一維數(shù)組中,將其中的值前后倒置后重新存入該數(shù)組中并輸出。 解法1: main(){int a[11],i,j,t;for(i=0;i<=10;i++)/*用循環(huán)輸入11個元素*/ scanf(“%d”,&a[i]);i=0;j=10;while(i main(){ int a[11],i,j,t;for(i=0;i<=10;i++)/*用循環(huán)輸入11個元素*/ scanf(“%d”,&a[i]);for(i=0,j=10;i #define N 11 main(){int a[N],i,t;for(i=0;i /*N為奇數(shù)偶數(shù)均可*/ {t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;/*交換對應元素的值*/ } for(i=0;i 9、從鍵盤輸入11個數(shù)存入一維數(shù)組中,將該數(shù)組中左半部分與右半部分的值平移交換后重新存入該數(shù)組中并輸出。 解法1: main(){int a[11],i,t;for(i=0;i<11;i++)/*用循環(huán)輸入11個元素*/ scanf(“%d”,&a[i]);for(i=0;i<=4;i++) {t=a[i];a[i]=a[i+6];a[i+6]=t;/*交換對應元素的值*/ } for(i=0;i<11;i++)/*用循環(huán)輸出11個元素*/ printf(“%d,”,a[i]);printf(“n”);} 解法2: #define N 11 main(){int a[N],i,t;for(i=0;i /*N為奇數(shù)偶數(shù)均可*/ {t=a[i];a[i]=a[i+(N+1)/2];a[i+(N+1)/2]=t;/*交換對應元素的值*/ } for(i=0;i 10、從鍵盤輸入100個數(shù)存入一維數(shù)組中,求其和與平均值并輸出。 #define N 100 main(){float a[N],s,p;int i;s=0;for(i=0;i {scanf(“%f”,&a[i]);s=s+a[i];} p=s/N;printf(“s=%f,p=%fn”,s,p);} 11、從鍵盤輸入一批正數(shù)存入一維數(shù)組中(以-1為結束標記),求其和與平均值并輸出。 解法1: #define N 200 main(){float a[N],s,p;int n=0;s=0;while(1){scanf(“%f”,&a[n]);if(a[n]==-1)break;s=s+a[n];n++;} p=s/n;printf(“s=%f,p=%fn”,s,p);} 解法2: #define N 200 main(){float a[N],s,p;int n=0;s=0;scanf(“%f”,&a[n]); while(a[n]!=-1){s=s+a[n];n++;scanf(“%f”,&a[n]); } p=s/n;printf(“s=%f,p=%fn”,s,p);} 12、從鍵盤輸入10個數(shù),用選擇法按降序排序并輸出。 解法1: main(){int a[10],i,j,t;for(i=0;i<=9;i++)