| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1419 人关注过本帖
标题:大神帮忙!!!最高分学生信息输不出
只看楼主 加入收藏
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
收藏
得分:0 
回复 10楼 ksddah
不是,我是说要每个科目的最高分都输出来!!
2012-12-30 14:03
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
收藏
得分:0 
回复 10楼 ksddah
而且我的学号输不出来
2012-12-30 14:14
lupeifeng123
Rank: 2
等 级:论坛游民
帖 子:74
专家分:47
注 册:2012-12-13
收藏
得分:7 
学习

一步一个脚印,贵在坚持。
2012-12-30 14:25
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
收藏
得分:0 
回复 10楼 ksddah
我输出不了最高分的学生信息,是不是输入非法
2012-12-30 15:30
ksddah
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:135
注 册:2012-12-11
收藏
得分:0 
回复 14楼 litterpay
是没有输出,还是什么?你用什么编译器,我用的是VS2008
2012-12-30 15:45
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
收藏
得分:0 
回复 15楼 ksddah
Visual C++ 6.0
2012-12-30 15:53
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
收藏
得分:0 
回复 15楼 ksddah
你看!!!

[ 本帖最后由 litterpay 于 2012-12-30 16:03 编辑 ]
2012-12-30 16:00
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
收藏
得分:0 
回复 10楼 ksddah
就是他的信息都是空的
分数也只是0.00
2012-12-30 16:21
ksddah
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:135
注 册:2012-12-11
收藏
得分:0 
确实应该有些问题,就在那个max函数的返回值上,再看看,
程序代码:
#include<stdio.h>
#include<stdlib.h>
#define n 5
    
float average(struct student stu[n]);
int max(struct student stu[n]); 
struct student 
{   
  char  num[6];   
  char name[10];   
  float score[6];                                    /*  其中最后一个元素用来保存平均成绩  */
}stu[n];

//struct student stu[n];

void input(struct student stu[n])
{   int i,j; 
    for(i=0;i<n;i++)   
    {     
        printf("学号: ");     
        scanf("%s",&stu[i].num);                                  
        printf("姓名: ");     
        scanf("%s",&stu[i].name);                                   
        printf("五门学科的成绩:\n");     
        scanf("%f %f %f %f %f:",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);     
        printf("\n");    
    }
} 
float average(struct student stu[n])
{  
    int j,i=0;  
    float sav=0,sum=0,ave;
    for(;i<n;i++)            
    {  
        for(j=0;j<5;j++)  
        {   
            sum+=stu[i].score[j];  
        }    
        stu[i].score[6]=sum/5; 
        printf("学生%d的平均分为%5.2f",i+1,stu[i].score[6]); 
        printf("\n");    
        sav+=stu[i].score[6];    
        sum=0;
    }
    ave=sav/n;
    return ave;
}
int max(struct student stu[n])
{ 
    int i=1,p=0;                          //p=0 
    float maxsocre;                       //改个名字,否则与函数名重合 
    maxsocre=stu[0].score[6];
    for(;i<n;i++)
    {   
        if(maxsocre<stu[i].score[6])  
        {    
            maxsocre=stu[i].score[6];   
            p=i;   
        }
    }
    return p;                     
} 

void main() 
{  
    int i,q,t,k;
    float su=0,ma;
    int no[5];                       //保存每门课最高分学生的序号 
    float ave;      
    input(stu); 
    ave=average(stu);
    printf("五门课的总平均分为%5.2f\n",ave);
    printf("\n"); 
    
    
    //输出每门课学生的平均分,输出该门课最高分学生的信息
    for(t=0;t<5;t++)
    {
        for(int j=0;j<n; j++)
        {
            su+=stu[j].score[t];    
        }
        su=su/5;
        printf("第%d门课的平均成绩为:%f\n",t+1,su);
        su=0;
        
        
        ma=stu[0].score[t];
        no[0]=0;
        for(k=1;k<n;k++)
        {
            if(ma<stu[k].score[t])
            {
                   ma=stu[k].score[t];
                   no[t]=k;              //记录该门课最高分学生的序号
            }
        }
        printf("第%d门课的最高分%f获得者是:%s\n",t+1,ma,stu[no[t]].name);  
    }

   
    q=max(stu);         
    printf("最高分的学生信息:\n学号:%s\n姓名:%s\n",stu[q].num,stu[q].name);        
    printf("五门学科的成绩:\n");printf("%5.2f %5.2f %5.2f %5.2f %5.2f\n",stu[q].score[0],stu[q].score[1],stu[q].score[2],stu[q].score[3],stu[q].score[4]);
    printf("平均分为%5.2f\n",stu[q].score[6]);
    system("pause");
}  

加了每门课的信息,但不完善,对分数相同时的每门课最高分情况没有处理

还有就是总分最高分的那个学号不知怎么不显示,有时乱码,问题应该出在max函数的返回值上

我运行都有显示,我的是VS2008,可能情况不一样吧
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2012-12-30 16:48
litterpay
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2012-12-21
收藏
得分:0 
回复 19楼 ksddah
打算用stu[i].score[6]来存放一个学生的平均成绩,但只能用到score[5]啊,没有score[6],数组下标是从0开始的。
2012-12-31 20:40
快速回复:大神帮忙!!!最高分学生信息输不出
数据加载中...
 
   



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

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