(1)随机产生全部同学的成绩,60~100分
(2)计算每组同学的平均成绩并输出
(3)计算全班的平均成绩并输出
(4)对每组同学成绩进行排序并输出
(5)对全班成绩进行排序并输出
重点:合理的数据结构;函数抽象;实参数组名;一维数组与二维数组的关系;
用3*4的二维数组. 以随机数填充,写两个函数计算机平均成绩和进行排序
二维数组就是连续的多个一维数组
你题目的解答代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define Y 3
#define X 4
void out(int a[Y][X])
{
int i,j;
for( i=0; i<Y; i++ )
{
for ( j = 0; j < X; j++)
printf("%d ", a[i][j]);
printf("\n");
}
}
double avg(int *a,int n)
{
int i,j;
double sum;
sum = 0;
for( i=0; i<n; i++ )
sum += a[i];
return sum/n;
}
void sort(int a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(a[j] > a[j+1])
{
int t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
int main()
{
int a[Y][X];
srand((unsigned)time(NULL));
int i,j;
for( i=0; i<Y; i++ )
{
for ( j = 0; j < X; j++)
a[i][j] = rand() % 41 + 60;
}
out(a);
for( i=0; i<Y; i++ )
{
printf("第%d组的平均成绩:%lf\n", i+1,avg(a[i],X));
}
printf("全班的平均成绩:%lf\n",avg(a,Y*X));
for( i=0; i<Y; i++ )
{
sort(a[i],X);
}
printf("各组的成绩排序:\n");
out(a);
sort(a,Y*X);
printf("全班的成绩排序:\n");
out(a);
return 0;
}
如有帮助,望采纳!谢谢!