c语言实现touch命令实验报告,C语言程序设计实验报告完整版(可追加分)

匿名用户

1级

2014-11-27 回答

举手之劳,帮你写了。

这里设定姓名长度不超过20字符。每个项目结束时,将其编号、类型符(区分取前3名还是前5名)输入,并按名次顺序输入运动员姓名、学校和成绩。程序已做改动,增加了一些代码以提高程序的健壮性。本题完整的c程序如下,在win-tc和Dev-c++下调试通过,运行正确。

#include

#include

#include

#include

#definen5/*设定,可更改*/

#definem3/*设定,可更改*/

#definew2/*设定,可更改*/

structachievement/*定义表示成绩的结构体*/

{intschoolnumber;/*学校编号*/

charname[20];/*姓名*/

intmark;/*分数*/

intresult;};

structpro/*表示项目的结构体*/

{inttag;/*项目编号*/

structachievementach[m+w];

intnumber;

};

structNode

{structprodate;

structNode*next;

};

main()

{

inti,j,t;

intx[n]={0};inty[n]={0};/*x[n]和y[n]分别表示男子和女子团体总分*/

structNode*head;

structNode*p;

structNode*q;

if((head=(structNode*)malloc(sizeof(structNode)))==NULL)exit(1);

head->next=NULL;/*初始化单链表*/

p=head;

for(i=0;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=(structNode*)malloc(sizeof(structNode));/*生成新结点*/

p->next=q;

p=q;

p->next=NULL;

}

}

for(i=0;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

{p=head->next;

free(head);

head=p;

}

getch();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值