踏上星辰


私信TA

用户名:xingchen123

访问量:2117

签 名:

等  级
排  名 6310
经  验 1372
参赛次数 0
文章发表 12
年  龄 0
在职情况 学生
学  校 湖南科技大学
专  业

  自我简介:

解题思路:

注意事项:
可以作为链表练习的一个题,蛮不错的
参考代码:

#include <stdio.h>

#include <stdlib.h>

struct student

{

        char number[20];

        char name[20];

        int grade1;

        int grade2;

        int grade3;

        struct student* next;

};

void  CreatList(struct student* head,int N);

void  input(struct student* temp);

int sum(struct student* target);


int main(void)

{

    struct student* head=(struct student*)malloc(sizeof(struct student));

    struct student* move=head;


    int N;  //N是学生记录数目

    scanf("%d",&N);

    int average1=0,average2=0,average3=0;

    int all;


      CreatList(head,N);

    struct student* target=head->next;  //作为最大的那个指针指向的结构体


  for(int i=1;i<=N;i++)

    {

        move=move->next;

        all=sum(move);

        target=(sum(target)>all)?target:move;


        average1+=move->grade1;

        average2+=move->grade2;

        average3+=move->grade3;

    }

    average1=average1/N;

    average2=average2/N;

    average3=average3/N;

    printf("%d %d %d\n",average1,average2,average3);

    printf("%s %s %d %d %d\n",target->number,target->name,target->grade1,target->grade2,target->grade3);

        return 0;

}

/*----------------设置头结点-------------*/

void CreatList(struct student* head,int N)

{

    struct student* move=head;

    for(int i=1;i<=N;i++)

    {

        struct student* temp=(struct student*)malloc(sizeof(struct student));

        move->next=temp;


        input(temp);


        temp->next=NULL;

        move=temp;

    }

}

void input(struct student* temp)

{

        scanf("%s%s%d%d%d",temp->number,temp->name,&temp->grade1,&temp->grade2,&temp->grade3);

}

int sum(struct student* target)

{

        return target->grade1+target->grade2+target->grade3;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区