C语言关于2维数组的练习题。。。

已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩排序记录(成绩最高的学生的排在数组最前面的行,成绩最低的排在数组最后面的行)。... 已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩排序记录(成绩最高的学生的排在数组最前面的行,成绩最低的排在数组最后面的行)。
做了一点求它们的平均值,,,下面的就不知道怎么办了
#include"stdio.h"
void main()
{
int i,j;
float sum;
float s[5][5]={{94,78,87,76},{66,87,75,69},{100,98,89,77},{82,58,72,84},{82,73,67,54}};
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<4;j++)
{
sum=sum+s[i][j];
s[i][4]=sum/4.0;
}
}
}
展开
 我来答
乙浦泽52
2013-12-22 · TA获得超过141个赞
知道答主
回答量:45
采纳率:0%
帮助的人:38.3万
展开全部
#include"stdio.h"

void sweap(float *s, int n){
int i,j;
float sore;
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(*(s+i)<*(s+j)){
sore = *(s+i);
*(s+i)= *(s+j);
*(s+j) = sore;
}
}
}

}
void main() { int i,j; float sum;
float avg[5]; float s[5][5]={{94,78,87,76},{66,87,75,69},{100,98,89,77},{82,58,72,84},{82,73,67,54}}; for(i=0;i<5;i++){ sum=0; for(j=0;j<4;j++){ sum=sum+s[i][j]; }
avg[i]=sum/4.0;
}

sweap(avg, 5);
for(i=0; i<5; i++){

printf("%f\n",avg[i]);
}}
追问

我的是这样的结果但是还存在一个问题您可以看一下吗??

如何将5个学生的4科成绩 随着平均分的高低的变化而变化,,,

下面是程序。。。。。。

追答
抱歉,来晚了,把void sweap(float *s, int n)改为
void sweap(float *s, int n, float a[][], int num){ int i,j,k;
float b[n]; float score, subscore;
for(i=0;i<n;i++){
b[i] = *(s+i); for(j=i+1;j<n;j++){ if(*(s+i)<*(s+j)){ score = *(s+i); *(s+i)= *(s+j); *(s+j) = score; } } }
for(i=0; i<n; i++){
for(j=0;j<n;j++){
if(b[i] == *(s+j)){
for(k=0; k<num; k++){
subscore = a[i][k];
a[i][k] = a[j][k];
a[j][k] = subscore;
}

}
}
}

}

其中 float a[][]是所有学生的科目成绩,num是科目数。 这样看看可以吗?
你也可以把平均成绩的计算迁到这个方法中。
ais35
2013-12-22 · 超过17用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:36.9万
展开全部
#include "stdio.h"

void _swap (float* a,float* b) {
float c=*a;
*a=*b;
*b=c;
}

int main()
{
int i,j;
float sum;
float s[5][5]={{94,78,87,76},{66,87,75,69},{100,98,89,77},{82,58,72,84},{82,73,67,54}};
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<4;j++)
{
sum=sum+s[i][j];
s[i][4]=sum/4.0;
}
}
for (i=0;i<5;i++)
for (j=i+1;j<5;j++)
if (s[i][4]<s[j][4])
for (int k=0;k<=4;k++)
_swap(s[i]+k,s[j]+k);
//输出
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式