| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1225 人关注过本帖
标题:结构体数组,定义第一个函数时候就有错误,有好多错。。。
取消只看楼主 加入收藏
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
结帖率:91.67%
收藏
已结贴  问题点数:34 回复次数:6 
结构体数组,定义第一个函数时候就有错误,有好多错。。。
觉得写的好乱,写到后面都快写哭了,实在写不下去了,磨叽快一天了。。。成绩排名次
 (学了结构体数组,没学过指针)
某班期末考试科目为数学 (MT) 、 英语 (EN)和物理(PH) ,有最多不超过 30 人参加考试, 学号可以用输入的序号代替。考试后要求:1)计算每个学生的总分和平均分;(2)按总分成绩由高到低排出成绩的名次;(3)打印出名次表,表格内包括学生编号、各科分数、 总分和平均分;(4)任意输入一个学号, 能够查找出该学生在班级中的排名及其考试分数。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct grade
{
    int num;
    double MT,EN,PH;
    double sum;
    double ave;
};

/*功能:输入学生的学号及三门成绩;
参数:定义结构体数组stu[],n代表学生人数
无返回值*/
void input(grade stu[],int n)
{
    int i;
    for(i=0;i<n;++i)
    {
        scanf("%d",&stu[i].num);
        scanf("%lf",&stu[i].MT,&stu[i].EN,&stu[i].PH);
    }
}
/*功能:计算学生的总分及均分
参数:结构体数组stu[],sum总分,Ave均分
*/
void getsa(grade stu[],int n)
{
    int i;
    for(i=0;i<n;++i)
    {
        stu[i].sum=stu[i].MT+stu[i].EN+stu[i].PH;
        stu[i].ave=stu[i].sum/3;
    }
}
/*功能:按总分的成绩由高到低排列序号
参数:结构体数组stu[],n为学生人数
*/
void sort(grade stu[],int n)
{
    int i,j,k,why;
    for(i=0;i<n-1;++i)
    {
        for(j=1;j<n;++j)
        {
            k=i;
            if(stu[k].sum<stu[j].sum)
            {
                j=k;
            }
            if(k!=i)
            {
                why=stu[i];
                stu[i]=stu[k];
                stu[k]=why;
            }
        }
    }
}
/*功能:打印出名次表,包括学号,三门成绩,总分及均分
参数:结构体数组stu[],n为学生人数。
*/
void line(grade stu[],int n)
{
    int i;
    printf("学号   MT   EN   PH   sum   ave");
    for(i=0;i<n;++i)
    {
        printf("%d",&stu[i].num);
        printf("%.2lf%.2lf%.2lf",&stu[i].MT,&stu[i].EN,&stu[i].PH);
        printf("%.2lf",&stu[i].sum);
        printf("%.2lf",&stu[i].ave);
    }
}
/*功能:输入一个学生的学号,能找出这个人的信息
参数:结构体数组stu[],n代表学生人数,x表示学号
*/
int search(grade stu[],int n,int x)
{
    int i;
    for(i=0;i<n;++i)
    {
        if(stu[i]==x)
            return i;
    }
    return -1;
}

int main()
{
    int n,number,x;
    grade stu[30];
    printf("输入参加考试的学生人数:");/*输入考试人数*/
    scanf("%d",&n);

    printf("输入学号和学生成绩MT,EG,MT:");/*输入学生学号及成绩*/
    input(stu,n);

    getsa(stu,n);/*计算总分及均分*/
    printf("");

    sort(stu,n);/*排名次*/

/*就是那些函数吧,我不知道怎么办了。。。。。这里写的想哭。。。*/


    printf("请输入你要查询的学号;");/*输入学号查信息*/
    scanf("%d",&x);
    number=search(stu,n,x);
    if(number!=-1)
    {
        printf("num\t   MT\t   EG\t   PH\t   sum\t   ave\t\n");
        printf("%d%lf%lf%lf%lf%lf",1+number,stu[number].MT,stu[number].PH,stu[number].sum,stu[number].ave);
    }
    system("pause");
    return 0;
}
搜索更多相关主题的帖子: include 考试科目 结构体 英语 数学 
2014-11-30 18:33
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
收藏
得分:0 
回复 3 楼 TonyDeng
那个有没学过的,然后下午也在看,就是有点看不进去啊。现在也再看啊。看了的,不是没看。太长了。。。而且有的问题我都觉得太低级了,就要百度啊。最近不太舒服,明后天看完就把不会的问你好吧。。。表桑心

连渣都不是——5.8
要拜雍正,专治八阿哥  b u g——6.27
2014-11-30 22:00
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
收藏
得分:0 
回复 6 楼 TonyDeng
酱啊,我们才学了结构体数组,留那个题的时候还没学。。。。。。我先洗澡,回来看,好多事要做。。。艾玛

连渣都不是——5.8
要拜雍正,专治八阿哥  b u g——6.27
2014-11-30 22:21
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
收藏
得分:0 
回复 8 楼 longwu9t
给你个赞,我要断网了,看完不明白的明天问你好吧。好

连渣都不是——5.8
要拜雍正,专治八阿哥  b u g——6.27
2014-11-30 23:33
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
收藏
得分:0 
回复 8 楼 longwu9t
哥啊,没学过指针啊。。。。

连渣都不是——5.8
要拜雍正,专治八阿哥  b u g——6.27
2014-12-01 12:58
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
收藏
得分:0 
回复 11 楼 longwu9t
也没学过typedef,它是用来干嘛的啊?能不能教我个别的来达到一样的效果?
然后我编的前面就有这样的错误:语法错误: 缺少“)”(在标识符“stu”的前面);语法错误: 标识符“stu”
全都是这个错误。。。你写的sum_t这都是什么意思啊?我之前int的x也有问题,是不能存储stu[i].sum吗?怎么改啊。。。

连渣都不是——5.8
要拜雍正,专治八阿哥  b u g——6.27
2014-12-01 14:49
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
收藏
得分:0 
回复 13 楼 longwu9t
奥,谢谢你O(∩_∩)O~~

连渣都不是——5.8
要拜雍正,专治八阿哥  b u g——6.27
2014-12-01 15:19
快速回复:结构体数组,定义第一个函数时候就有错误,有好多错。。。
数据加载中...
 
   



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

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