vlambda博客
学习文章列表

【C语言】例题6.1~6.4 数组

例题6.1 



对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出


#include<stdio.h>

int main()

{int a[10],i;

 for(i=0;i<10;i++)

   a[i]=i;

 printf("reverse order:\n");

 for(i=9;i>=0;i--)

   printf("%d ",a[i]);

 return 0;





例题6.2 



用数组来处理求Fibonacci数列的问题                           


#include<stdio.h>

int main()

{int a[30],i,n=1;

 

 for(i=0;i<30;i++)

  { if(i<2)

       a[i]=1;

    if(i>=2)

       a[i]=a[i-1]+a[i-2];}

 

 for(i=0;i<30;i++,n++)

   {printf("%12d",a[i]);

//%12d保持右对齐;左对齐用“\t”

    if(n%5==0)

      printf("\n");}

}





例题6.3 



有10个地区的面积,要求它们由小到大的顺序排列           


#include<stdio.h>

int main()

{float a[10];

int i,j,t;

 for(i=0;i<10;i++)

   scanf("%f",&a[i]);

 for(j=9;j>0;j--) 

   {for(i=0;i<j;i++)

      if(a[i+1]<a[i])

         {t=a[i];a[i]=a[i+1];a[i+1]=t;}}  

 

 for(i=0;i<10;i++)

   printf("%10.2f",a[i]); 

 

}





例题6.4 



将一个二维数组行列互换,存到另一个数组中                 


#include<stdio.h>

int main()

{int a[2][4],b[4][2],i,j,t;

for(i=0;i<2;i++)

  for(j=0;j<4;j++)

     scanf("%d",&a[i][j]);

for(i=0;i<2;i++)

   for(j=0;j<4;j++)

      b[j][i]=a[i][j];

printf("a[2][4]:\n");    

for(i=0;i<2;i++)

  {for(j=0;j<4;j++)

    printf("%d\t",a[i][j]);

  printf("\n");}

printf("\nb[4][2]:\n");

for(i=0;i<4;i++)

  {for(j=0;j<2;j++)

    printf("%d\t",b[i][j]);

  printf("\n");}

return 0;

}

结果:

a[2][4]:

1       2       3       5

75      8       769     434

b[4][2]:

1       75

2       8

3       769

5       434