057.运动会分数统计

简介: 057.运动会分数统计
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define n 4
#define m 3
#define w 2
struct achievement  //定义表示成绩的结构体
{int schoolnumber;//学校编号
char name[20];  //姓名
int mark; //分数
int result;};
struct pro     //表示项目的结构体
{int tag;//项目编号
struct achievement ach[5];
int number;};
struct Node         
{struct pro date;
struct Node *next;};
void ListInitiate(struct Node * *head)    //初始化单链表
{
    if((*head=(struct Node*)malloc(sizeof(struct Node)))==NULL) exit(1);
    (*head)->next=NULL;
}
void main()
{
    int i,j,t;
    int x[n]={0};int y[n]={0};
    struct Node *head;
    struct Node *p;
    struct Node *q;
    ListInitiate(&head);
    p=head;
  for(i=0;i<m+w;i++)      //输入成绩
    {
        j=i+1;
        printf("请输入第%d个项目的信息\n",j);
        p->date.number=j;
        printf("所取的名次数为:");
        scanf("%d",&p->date.tag);
        while(p->date.tag!=3&&p->date.tag!=5)
        {printf("输入有误,请重新输入!");
    printf("所取的名次数为:");
    scanf("%d",&p->date.tag);}
        t=1;
        while(t<=p->date.tag)
        {
            printf("第%d名的名字:",t);
            scanf("%s",&p->date.ach[t-1].name);
            printf("第%d名的学校:",t);
            scanf("%d",&p->date.ach[t-1].schoolnumber);
            printf("第%d名的分数:",t);
            scanf("%d",&p->date.ach[t-1].mark);
            p->date.ach[t-1].result=t;
            t++;
        }
        q=(struct Node*)malloc(sizeof(struct Node));  //生成新结点
        p->next=q;
        p=q;
        p->next=NULL;
    }
  for(i=0;i<n;i++)     //产生成绩单
  {
    j=i+1;
    printf("学校%d成绩单\n",j);
    //t=1;
    p=head;
    do
    {
      t=1;
      while(t<=p->date.tag)
      { 
        if(p->date.ach[t-1].schoolnumber==j)
        {            
          printf("获奖项目:%d   ",p->date.number);
          printf("名次:%d   \n",p->date.ach[t-1].result);
          printf("获奖人姓名:%s   ",p->date.ach[t-1].name);
          printf("所得分数:%d   ",p->date.ach[t-1].mark);
          if(p->date.number<=m)
            x[i]=x[i]+p->date.ach[t-1].mark;
          else
            y[i]=y[i]+p->date.ach[t-1].mark;
        }    
        t++;
      }
      p=p->next;
    }while(p!=NULL);
    printf("\n男子团体总分:%d   ",x[i]);
    printf("女子团体总分:%d   \n",y[i]);
    printf("\n团体总分:%d\n",x[i]+y[i]);
  }
}
相关文章
|
2天前
数据分享|R语言回归模型诊断、离群值分析学生考试成绩、病人医护质量满意度、婴儿死亡率和人均收入、针叶树荫面积数据
数据分享|R语言回归模型诊断、离群值分析学生考试成绩、病人医护质量满意度、婴儿死亡率和人均收入、针叶树荫面积数据
|
11天前
R语言分位数回归预测筛选有上升潜力的股票
R语言分位数回归预测筛选有上升潜力的股票
11 0
|
1月前
|
C语言
跳水运动员预测比赛结果排名次问题详解(逻辑类型题1)
跳水运动员预测比赛结果排名次问题详解(逻辑类型题1)
18 0
|
5月前
某学科成绩的录入并显示出最高分,最低分,平均值。
某学科成绩的录入并显示出最高分,最低分,平均值。
|
10月前
|
算法
蓝桥杯 算法提高 统计平均成绩
蓝桥杯 算法提高 统计平均成绩
70 0
PTA 1038 统计同成绩学生 (20 分)
本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。
64 0
PTA 1077 互评成绩计算 (20 分)
在浙大的计算机专业课中,经常有互评分组报告这个环节。
128 0
|
Shell
一维数组实验题:大奖赛现场统分。已知某大奖赛有n个选手参赛,m(m>2)个评委为参赛选手评分(最高10分,最低0分)。统分规则为:在每个选手的m个得分中,去掉一个最高分和一个最低分后,取平均分作为该选
一维数组实验题:大奖赛现场统分。已知某大奖赛有n个选手参赛,m(m>2)个评委为参赛选手评分(最高10分,最低0分)。统分规则为:在每个选手的m个得分中,去掉一个最高分和一个最低分后,取平均分作为该选
422 0
7-56 互评成绩 (25 分) (排序题)
7-56 互评成绩 (25 分) (排序题)
90 0
|
安全 C++
202012-1 期末预测之安全指数
202012-1 期末预测之安全指数
82 0
202012-1 期末预测之安全指数