printf(\ }
(2)#include \ void main()
{ static int a[200]; int i,j,n; for(i=0;i<200;i++) a[i]=0; n=100;
for(i=0;i (3)#include \ void main() { int a,b=0; static int c[10]={1,2,3,4,5,6,7,8,9,0}; for(a=0;a<10;++a) if((c[a]%2)==0) b+=c[a]; printf(\ } (4)#include \ void main() { int a,b=0; static int c[10]={1,2,3,4,5,6,7,8,9,0}; for(a=0;a<10;++a) if((a%2)==0) b+=c[a]; printf(\ } (5)#include \ main() { int a,b=0; int c[10]={1,2,3,4,5,6,7,8,9,0}; for(a=0;a<10;++a) b+=c[a]; printf(\ } (6)#include \ int c[10]={1,2,3,4,5,6,7,8,9,0}; void main() { int a,b=0; for( a=0;a<10;++a) if((c[a]%2)==1) b+=c[a]; printf(\ } (1) 结果: 1 2 4 8 1632 64 128 256 512 (2) 结果:199 (3) 结果:20 (4) 结果:25 (5) 结果:45 (6) 结果:25 【习题5-9】编写一个程序,完成5.1题的要求。 程序如下: /*c5_9.c*/ #include double a[12]={1.0,15.5,9.5,-23,8.4,66.5,7.1,22.0,54.5,-34,11.3,32.5}; int i,j,k; double max,min; min=a[0]; for(i=0;i<12;i++) if(min>a[i]) min=a[i]; printf(\ max=a[0]; for(i=0;i<12;i++) if(max if(i==j||j==k||k==i) continue; if(a[i]+a[j]==a[k]) printf(\ } for(i=0;i<12;i++) for(j=0;j<12;j++) for(k=0;k<12;k++) { if(i==j||j==k||k==i) continue; if(a[i]-a[j]==a[k]) printf(\ } } 【习题5-10】编写一个程序,完成5.2题的要求。 程序如下: /*c5_10.c*/ (略) 【习题5-11】对给定的整型一维数组a[100]赋值,要求给奇数下标值的元素赋负值,偶数下标值的元素赋正值。 程序如下: /*c5_11.c*/ #include int a[100]; int i,j,k; for(i=0;i<100;i++) if(i%2==1) a[i]=-1; else a[i]=1; } 【习题5-12】给整型二维数组b[3][4]输入12个数据,计算并输出数组中所有正数之和、所有负数之和。 程序如下: /*c5_12a.c*/ #include { static int b[3][4]; int i,j,sum1=0,sum2=0; printf(\ for(i=0;i<3;i++) for(j=0;j<4;j++) scanf(\ for(i=0;i<3;i++) for(j=0;j<4;j++) {if(b[i][j]>0) sum1+=b[i][j]; if(b[i][j]<0) sum2+=b[i][j]; } printf(\ /*c5-12b.c*/ #include { int x[3][4],i,j,a=0,b=0; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf(\ for(i=0;i<3;i++) for(j=0;j<4;j++) if(x[i][j]>0) a+=x[i][j]; else b+=x[i][j]; printf(\} 【习题5-13】对稀疏数组a[20](所谓稀疏数组,即有若干数组元素值为0的数组),编写一个程序,将所有非零元素值按紧密排列形式转移到数组的前端。(要求:程序中不再开辟其它的单元作为数组元素值的缓存单元) 程序如下: /*c5_13.c*/ #include int a[20]={0,0,1,0,2,0,0,0,3,4,0,0,0,0,0,5,0,0,6,0}; int i,j,k; for(i=0;i<20;i++) printf(\ printf(\ for(i=1;i<20;i++) { if(a[i]==0) continue; for(k=i-1;k>=0;k--) if(a[k]!=0) break; if(k==i-1) continue; a[k+1]=a[i]; a[i]=0; } for(i=0;i<20;i++) printf(\ printf(\} 【习题5-14】用选择法编写一个程序,使存储在整型数组a[100]中的各元素值按升序排列存放。(要求:程序中至多允许使用一个缓存单元) 程序如下: /*c5_14a.c*/ #include { static int a[100]; int i,j,temp; printf(\ for(i=0;i<100;i++) scanf(\ for(i=0;i<99;i++) for(j=i+1;j<100;j++) if(a[i]>a[j]) { temp=a[j]; a[j]=a[i]; a[i]=temp; } for(i=0;i<100;i++) printf(\ printf(\ /*c5.14b.c*/ void main() { int a[100],i,j,min,t; for(i=0;i<100;i++) scanf(\ for(i=0;i<99;i++) { min=i; for(j=i+1;j<100;j++) if(a[j]