⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 运动会程序.txt

📁 这是我编的运动会程序 花了我很多时间 希望我可以通过
💻 TXT
字号:
#include <stdio.h> 
#include <stdlib.h> 
#include <malloc.h> 
#include <conio.h> 
#define n 4 /*设定,可更改*/ 
#define m 2 /*设定,可更改*/ 
#define w 2 /*设定,可更改*/ 

struct achievement /* 定义表示成绩的结构体 */ 
{int schoolnumber;/* 学校编号 */ 
char name[20]; /* 姓名 */ 
int mark; /* 分数 */ 
int result;}; 

struct pro /* 表示项目的结构体 */ 
{int tag;/* 项目编号 */ 
struct achievement ach[m+w]; 
int number; 
}; 

struct Node 
{struct pro date; 
struct Node *next; 
}; 

main() 
{ 
int i,j,t; 
int x[n]={0};int y[n]={0}; /* x[n]和y[n]分别表示男子和女子团体总分 */ 
struct Node *head; 
struct Node *p; 
struct Node *q; 
if((head=(struct Node*)malloc(sizeof(struct Node)))==NULL) exit(1); 
head->next=NULL; /* 初始化单链表 */ 
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("输入有误,请重新输入!"); 
getchar(); /*加入此函数避免输入错误时程序进入无限循环*/ 
getchar(); 
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++; 
} 
if(j!=m+w)/* 注意这里 */ 
{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("\n学校%d成绩单:\n",j); 
p=head; 
while(p!=NULL) 
{ 
t=1; 
while(t<=p->date.tag) 
{ 
if(p->date.ach[t-1].schoolnumber==j) 
{ 
printf("获奖项目:%d ",p->date.number); 
printf("名次:%d ",p->date.ach[t-1].result); 
printf("获奖人姓名:%s ",p->date.ach[t-1].name); 
printf("所得分数:%d \n",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; 
} 
printf("\n男子团体总分:%d ",x[i]); 
printf("女子团体总分:%d \n",y[i]); 
printf("团体总分:%d\n",x[i]+y[i]); 
} 
for(i=0;i<m+w;i++) /*释放申请的内存空间*/ 
{p=head->next; 
free(head); 
head=p; 
} 
getch(); 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -