| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 609 人关注过本帖
标题:学生成绩管理问题,求高人指点,只学到函数那一章,所以请用循环和数组做
只看楼主 加入收藏
luliangjun
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2012-10-27
收藏
 问题点数:0 回复次数:10 
学生成绩管理问题,求高人指点,只学到函数那一章,所以请用循环和数组做
题目要求如下,由键盘输入n(n不大于1000)个学生的m(m不大于10)门课程的成绩,
要求(1)将学生按总分由高到低排序,
按格式要求输出排序后的结果(一行一个学生信息);(2)输出每一门成绩的平均分,保留一位小数。
如图

[键盘输入]
5 3                          代表5个学生,3门课
90 70 75                 第一个学生三门课成绩
89 67 78
87 65 98
97 86 77
88 96 82
[正确输出]
88 96 82
97 86 77
87 65 98
90 70 75
89 67 78
90.2 76.8 82


小弟的代码如下,求指导,对新人来说有点难度,我地很多同学基本不会做,非常感谢大神,衷心感谢
#include <stdio.h>
int main()
{
    int i,j,k,n,m;
    double t,ave,a[1000][10],b[1000],c[10];
    scanf("%d %d\n",&n,&m);
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {scanf("%f\n",&a[i][j]);
        b[i]+=a[i][j];
        }
      for(i=0;i<n-1;i++)
      {
        k=i;
        for(j=i+1;j<n;j++)
            if(b[j]>b[k]) k=j;
      }
      if(k!=i)  {
      t=b[i];b[i]=b[k];b[k]=t;}
    }
   for(i=0;i<n;i++)
       for(j=0;j<m;j++)
           printf("%f\n",a[i][j]);
   for(j=0;j<m;j++)
   {
     for(i=0;i<n;i++)
         c[j]=a[i][j];
     ave=c[j]/n;
     printf("%1f ",ave);
   }
  return 0;
}
搜索更多相关主题的帖子: 三门 
2012-12-10 22:51
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
你能解释一下你的代码吗

真怀疑代码是不是你自己写的

DO IT YOURSELF !
2012-12-10 22:54
luliangjun
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2012-10-27
收藏
得分:0 
回复 2楼 wp231957
第一个大的for是输出由高到低的成绩,第二个大for是输出平均分啊,真是我自己写的,已经尽力了,所以才说真的不会做······请谅解
2012-12-11 11:47
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
[正确输出]
88 96 82
97 86 77
87 65 98
90 70 75
89 67 78
-------
你这个输出是按什么排序的?????????
看不懂啊

难道是按总成绩的?
2012-12-11 13:59
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
   {scanf("%f\n",&a[i][j]);
scanf函数的fomat里不能有\n这个东东

DO IT YOURSELF !
2012-12-11 14:07
上苍之手
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:314
专家分:1451
注 册:2012-11-24
收藏
得分:0 
不知道这个行不行?
#include"stdio.h"
int main()
{
    int s[10], a[10][1000], i, j, sum = 0, m, n;
    scanf("%d%d", &n, &m);
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            scanf("%d", &a[i][j]);
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
            sum += a[j][i];
        s[i] = sum;
        sum = 0;
    }
    printf("输出后\n");
    for (i = (n- 1); i >= 2; i--)
    {
        for (j = 0; j < m; j++)
            printf("%-3d", a[i][j]);
        printf("\n");
    }
    for (i = 0; i < 2; i++)
        {
            for (j = 0; j < m; j++)
                printf("%-3d", a[i][j]);
    printf("\n");
        }
    for (i = 0; i < m; i++)
        printf("%-5.1f", (float)s[i] /n );
    return 0;
}
输入5 3可以那样输出。。。

扬起风帆,从此自信远航。。。。。
2012-12-11 17:34
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:0 
函数嵌套过程中变量重名了啊。。

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-12-11 18:32
luliangjun
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2012-10-27
收藏
得分:0 
回复 4楼 daniel_
我在第一行就写出来了啊,要求没看到吗?要按总成绩由高到低啊,大家都没看到要求吗?是我网络的问题?
2012-12-11 21:50
luliangjun
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2012-10-27
收藏
得分:0 
回复 5楼 wp231957
哦哦,谢谢,细节东西有点乱了,幸好已经做出来了,感谢了
2012-12-11 21:51
luliangjun
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2012-10-27
收藏
得分:0 
回复 6楼 上苍之手
首先,不管你的程序是否正确,都要感谢你的回答,题目我已经做出来了,但我会试一下你的程序,目测是没问题的,明天运行一下,感谢
2012-12-11 21:54
快速回复:学生成绩管理问题,求高人指点,只学到函数那一章,所以请用循环和数组 ...
数据加载中...
 
   



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

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