(1)随机产生全部同学成绩,60~100分;
(2)计算每组同学的平均成绩并输出;
(3)计算全班同学的平均成绩并输出;
(4)对每组同学成绩进行排序并输出;
(5)对全班成绩进行排序并输出;
#include
#include
#include
#define Y 3
#define X 4
void out(int a[Y][X])
{
int i,j;
for(i=0;ifor(j=0;jprintf("%d",a[i][j]);
printf("\n");
}
}
double ave(int *a,int n)
{
int i,j;
double sum;
sum=0;
for(i=0;ireturn sum/n;
}
void BubbleSort(int a[],int n,int flag)
{
int i,j,t;
for(j=n-1;j>0;j--)
{
for(i=0;iif(a[i]>a[i+1]&&flag||a[i]1]&&!flag)
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
}
int main()
{
int a[Y][X];
srand((unsigned)time(NULL));
int i,j;
for(i=0;ifor(j=0;jrand()%41+60;
}
out(a);
for(i=0;iprintf("第%d组的平均成绩:%lf\n",i+1,ave(a[i],X));
}
printf("全班的平均成绩:%lf\n",ave(a,Y*X));
for(i=0;iBubbleSort(a[i],X,0);
}
printf("各组的成绩排序为:\n");
out(a);
BubbleSort(a,Y*X,0);
printf("全班的成绩排序为:\n");
out(a);
return 0;
}
1、为什么define Y、X后需要分别加3、4?只要这样加3、4就能分别代表组和名了吗?
2、第一个函数out我是按照别人的程序写的,这个函数的逻辑语言是什么呢?在整个程序中又扮演着什么样的角色呢?
3、为什么double ave(int a,int n)的a前要加“”,否则就会出现"subscripted value is neither array nor pointer nor vector“的字样?且为什么是return sum/n呢?
4、为什么在代码中字符i可以跟数组Y进行比较?
5、第53行中为什么rand()后要加%41+60?
6、第58行调用ave为什么参数是(a[i],X)?第60行调用ave参数为什么是(a,Y*X)?
7、如何让输出的各成绩结果之间加入空格便于观看?