郑州大学C语言实验报告册答案之实验数组
实验七 数组(一)
1、用随机函数产生15个100以内的随机整数存入一维数组,然后分三行输出,每行3个数。
#include
void main()
{ int a[15],i;
for (i=0; i<15; i++)
{ a[i]=rand();
/* 产生-90~32767之间的随机整数*/
if(a[i]<0) a[i]= -a[i];
a[i]=a[i]%101;
if(i%5==0) printf("\n");
printf("%8d ",a[i]);
}
}
2、求出n个学生一门课程中的最高成绩和最低成绩及高于平均成绩的人数。
#define N 10
void main()
{ float a[N]={78,86,65,55,91,83,78,90,69,81};
float max=0,min=100,avg=0;
int i, num=0;
for (i=0; i
{ if(a[i]>max) max=a[i];
if(a[i]
avg=avg+a[i];
}
avg=avg/N;
for (i=0; iavg) num++;
printf("\n max=%.2f, min=%.2f\n",max,min);
printf("\n > %.2f=%d\n",avg,num);
}
3、使用数组,求出下列数列的前20项:1, 1, 2, 4, 7, 13, ……
void main()
{ long a[20]={1,1,2};
int i;
for(i=3;i<20;i++) a[i]=a[i-1]+a[i-2]+a[i-3];
for(i=0;i<20;i++)
{ if(i%5==0) printf("\n");
printf("%9ld ",a[i]);
}
}
4、将一个一维数组反序放置 如:a={67,89,76,98.66}反序放置后 a={66,98,76,8967}
#define N 5
void main()
{ int a[N]={67,89,76,98,66}, i, k;
for(i=0; i
{ k=a[i];
a[i]=a[N-i-1];
a[N-i-1]=k;
}
printf(“\n a={%d”,a[0]);
for(i=1;i
printf(“}\n”);
}
5、有10个学生一门课程成绩,使用选择排序法将成绩由高向低排序.
#define N 10
void main()
{int a[N]={67,89,76,98,66,55,77,79,96,89};
int i, j, p, k;
for(i=0; i
{ p=i;
for ( j=i+1; j
if (a[p]
if (p!=i)
{ k=a[i]; a[i]=a[p]; a[p]=k; }
}
for( i=0; i
printf("%4d", a[i]);
}
实验七 数组(二)
1、将一个一维数组a[9]中各元素值按行的顺序放入二维数组b[3][3]中。
void main()
{int a[9]={1,2,3,4,5,6,7,8,9},b[3][3],i,j,k=0;
for (i=0;i<3;i++)
{ for (j=0; j<3; j++)
{ b[i][j]=a[k++];
printf("%8d",b[i][j]);
}
printf("\n");
}
}
2、有一m×n矩阵,各元素由随机数产生,将矩阵增加一列,求矩阵每一行的元素值之和,并将它放入增加列.
#include
#define m 3
#define n 4
void main()
{ long a[m][n+1];
int i,j;
for (i=0;i
{ a[i][n]=0;
for(j=0;j
a[i][n]=a[i][n]+a[i][j];