【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