C语言答案第5章
第5章 数 组
[习题-1]/*c5_1.c*/
#include
void main()
{
double a[12]={1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,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("min=%lf\n",min);
max=a[0];
for(i=0;i<12;i++)
if(max
printf("max=%lf\n",max);
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("%lf+%lf=%lf \n",a[i],a[j],a[k]);
}
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("%lf-%lf=%lf \n",a[i],a [j],a[k]);
}
}
[习题-2]A[4][3],其各元素值在内存中排列的顺序为:
4.0,28.0,15.5,-9.5,-23.0,8.0,56.0,2.0,28.0,7.0,6.2,5.0
请按下列要求写出各题的答案。
(1)数组中元素值最小的数组元素。
(2)数组中元素值最大的数组元素。
(3)数组中某数组元素值等于另外两个数组元素值之积的等式。
(4)数组中某数组元素值等于另外两个数组元素值之商的等式。
答案:(略)
[习题-3]/*c5_3.c*/
int r[100];
float s[100][100];
int t[3][4][5];
float q[6][5][4][3];
[习题-4]float a[10]={3.,4.5,6.0,8.4,-32.8,3.2,56.0,4.5,2.3,1.5};
(2)int b[10]={3,5,0,12,34,7,8,9,41,88};
(3)float c[2][4]={1.,2.,3.,4.,5.,6.,7.,8.};
(4)int d[3][3]={{1,2,3},{4,5,6},{7,8,9}};
(5)int e[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
答案:(略)
[习题-5]/*c5_5.c*/
float a[12]={1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.0};
int a[3][3]={1,2,3,4,5,6,7,8,9};
float a[2][3][2]={1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.0};
[习题-6]scanf语句完成5.4题中各小题相应的功能。
答案:(略)
[习题-7]/*c5_7.c*/
#include
void main()
{
int a[10][10];
int i,j,k;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
a[i][j]=i*10+j;
printf("==1==\n");
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%3d",a[i][j]);
printf("\n");
}
printf("\n");
printf("==2==\n");
fori=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%3d",a[j][i]);
printf("\n");
}
printf("\n");
printf("==3==\n");
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
if(i==j)
printf("%3d",a[i][j]);
else
printf(" ");
printf("\n");
}
printf("\n");
printf("==4==\n");
for(i=0;i