| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2435 人关注过本帖
标题:哥哥姐姐帮个忙 怎么改改这个程序就可以对对平均成绩从高到低将各学生的成 ...
只看楼主 加入收藏
dong152liang
Rank: 2
来 自:廊坊
等 级:论坛游民
帖 子:56
专家分:29
注 册:2009-11-8
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:9 
哥哥姐姐帮个忙 怎么改改这个程序就可以对对平均成绩从高到低将各学生的成绩排序记录
题目要求   已知5个学生的4门成绩,要求输入全部学生的各门成绩,求出每个学生的各门成绩,然后对平均成绩从高到低将各学生的成绩排序记录

#include<stdio.h>
void main()
{
    int i,j;
    float sum,t;
    float a[5][4]={{1,2,3,4},{5,6,7,8},{9,0,0,9},{8,7,6,5},{4,3,2,1}};
    float ave[5][5];
    for (i=0;i<5;i++)/*用i控制学生人数的变化*/

    {
        for(j=0,sum=0;j<4;j++)/*使sum初值为0,用j控制学生的学科的变化*/

        {
            sum=sum+a[i][j];/*累加序号i的各科成绩*/

        }
    ave[i][5]=sum/4;/*求学生的平均成绩*/

    }
    for(i=0;i<4;i++)/*进行4次循环,实现4次比较*/

      {
        for(j=i+1;j<5;j++)/*在每趟比较中进行4-i次比较*/

        if(ave[i][5]<ave[j][5])/*相邻两数的比较*/

          {t=ave[j][5];ave[j][5]=ave[i][5];ave[i][5]=t;}
    }
    for(i=0;i<5;i++)/*用i控制学生人数的变化*/
    {
        for(j=0;j<4;j++)/*用j控制学生的学科的变化*/   
       printf("%.2f",a[i][j]);/*输出每个人的各科成绩*/
        printf("\n ");
    }
   
}
哥哥姐姐  怎么在各课成绩间加个空格  怎么按平均成绩的大小输出各科成绩
搜索更多相关主题的帖子: 记录 学生 改改 
2009-11-14 11:06
李若斌
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:219
专家分:184
注 册:2009-9-30
收藏
得分:0 
.....怎么最近都是这个题目啊 ,大家都做烂了这个题目了。你们不是拿出来耍我们的吧。
2009-11-14 11:31
dong152liang
Rank: 2
来 自:廊坊
等 级:论坛游民
帖 子:56
专家分:29
注 册:2009-11-8
收藏
得分:0 
不会呀!  别提了 开始理解错了  开始以为是输出平均值  细一看题按平均成绩大小输出各科成绩
2009-11-14 11:54
李若斌
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:219
专家分:184
注 册:2009-9-30
收藏
得分:0 
拜托,那个题目变了那么一下思路还是差不多的好不好,只是现在是每一科的平均成绩而不是同学的平均成绩,5同学4成绩a[5][4]=依次放入5个同学每一科的成绩
ave[4];
for(i=0;i<4;i++)
{for(j=0;j<5;j++)
 sum=a[i][j];
 ave[i]=sum/5;
}
for(i=0;i<3;i++)
{for(j=i+1;j<4;j++)
 if(ave[i]<ave[j])
 {t=ave[i];
  ave[i]=ave[j];
  ave[j]=t;
}
for(i=0;i<4;i++)
printf("%3f",ave[i]);
你就觉得换汤不换药的这样很有意思?
2009-11-14 12:29
dong152liang
Rank: 2
来 自:廊坊
等 级:论坛游民
帖 子:56
专家分:29
注 册:2009-11-8
收藏
得分:0 
哥哥 理解错了 求出平均成绩 然后对平均成绩从高到低将学生的将各科成绩排序记录(成绩最高的学生排在数组最前面的行,成绩最低的学生排在数组最后面的行),
2009-11-14 13:00
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:0 
我估计是期末考试快到了吧
2009-11-14 13:23
李若斌
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:219
专家分:184
注 册:2009-9-30
收藏
得分:10 
求出平均成绩 然后对平均成绩从高到低将学生的将各科成绩排序记录(成绩最高的学生排在数组最前面的行,成绩最低的学生排在数组最后面的行),
那你输入成绩怎么输入呢?
把20个成绩无序输入?那还怎么依据判断啊?谁知道哪个成绩是哪个学生的啊?
如果你输入的时候a[0]中对应的是a同学的成绩的,...依次到a[4]这样的话, 那么只要改下后面
 for(i=0;i<4;i++)/*进行4次循环,实现4次比较*/

      {
        for(j=i+1;j<5;j++)/*在每趟比较中进行4-i次比较*/

        if(ave[i]<ave[j])/*相邻两数的比较*/

          {for(k=0;k<4;k++);      //*前面多定义一个变量k*//
            t=a[i][k];a[i][k]=a[j][k];a[j][k]=t;  //*注意了,你需要交换的不是ave[]这个数组里面的元素,你需要交换的是a[][]里面的元素。
          }
思路是这样的,首先还是判断出每个学生的平均成绩放入ave[]这个数组。再根据平均成绩大小交换对应的同学的成绩,再输出交换以后a[][]这个数组。懂不?
你要理解大家写的程序,不是叫你照搬。
2009-11-14 13:59
dong152liang
Rank: 2
来 自:廊坊
等 级:论坛游民
帖 子:56
专家分:29
注 册:2009-11-8
收藏
得分:0 
  知道了  谢谢哥哥了
2009-11-14 15:47
书恒
Rank: 2
来 自:石家庄
等 级:论坛游民
帖 子:48
专家分:52
注 册:2009-11-10
收藏
得分:0 
回复 6楼 m456m654
期末考试C语言考试难吗?都考试什么啊?

好好学习,誓死学好专业!!!
2009-11-14 17:15
qq334591446
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-11-4
收藏
得分:0 
回复 楼主 dong152liang
兄弟,这题目会做了吗?我们教授也叫做这个题目,12个学生,3个科目,求每个学生的平均成绩,在排名,,给我看看代码呀
2012-11-13 22:51
快速回复:哥哥姐姐帮个忙 怎么改改这个程序就可以对对平均成绩从高到低将各学 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042064 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved