c语言设计 不是c++
1. 题目描述
从100名优秀运动员中评选出10名最佳运动员。具体规则如下。
1) 运动员号按1、2、3…..顺序编号;
2) 由键盘接受所收到的选票,每张选票至多可写10个不同的编号;
3) 对应名次的运动员编号可以有空缺,但必须用0表示;
4) 若编号超出规定的范围,或编号出现重复,作废选票;
5)按选票中所列最佳运动员顺序给他们计分,计分标准如下:从第1名至第10名所得分数依次为:15,12,9,7,6,5,4,3,2,1;
6)按各运动员所得分数高低进行排队,列出前十名最佳运动员排名,格式为:
名次 运动员编号 合计得分 合计得票数
如果得分相同,则得票多者在前,如果得分与票数都相同,则编号小的在前。
追问:来自手机问问我早都需要了。 而且你这个有好多我们都没学过
答案:昨天看到的!刚做好!在VC中运行无误!如果是TC把相应的清屏代码和所在的头文件换一下!#include<stdio.h>
#include <stdlib.h>
int toupiao(int sc[100][2])
{
system("cls");
int flag=0,xh,i,j,xp[10]={0,0,0,0,0,0,0,0,0,0};
printf("优秀运动员评选系统\n");
printf("1.填写选票!\n");
printf("2.放弃投票!\n");
scanf("%d",&xh);
switch (xh)
{
case 1:
for(i=1;i<=10;i++)
{
printf("请给出投票第%d名的选手编号:",i);
scanf("%d",&xp[i-1]);
if(xp[i-1]>100||xp[i-1]<0)
{
printf("\n运动员编号错误!本票作废! \n");
flag=2;
break;
}
else
if(xp[i-1]!=0)
{
for(j=0;j<i-1;j++)
{
if(xp[i-1]==xp[j])
{
printf("\n给同一编号的运动员重复投票!本票作废! \n");
flag=2;
break;
}
}
if(j<i-1)
break;
}
}
break;
case 2:
flag=0;
}
if(flag!=2)
{
for(i=0;i<10;i++)
{
if(xp[i]!=0)
{
switch(i)
{
case 0:
sc[xp[i]-1][0]+=15;
break;
case 1:
sc[xp[i]-1][0]+=12;
break;
case 2:
sc[xp[i]-1][0]+=9;
break;
case 3:
sc[xp[i]-1][0]+=7;
break;
case 4:
sc[xp[i]-1][0]+=6;
break;
case 5:
sc[xp[i]-1][0]+=5;
break;
case 6:
sc[xp[i]-1][0]+=4;
break;
case 7:
sc[xp[i]-1][0]+=3;
break;
case 8:
sc[xp[i]-1][0]+=2;
break;
case 9:
sc[xp[i]-1][0]+=1;
}
sc[xp[i]-1][1]++;
}
}
flag=1;
}
return flag;
}
void tjpm(int sc[100][2],int xp,int fp)
{
system("cls");
int pm[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},i,j;
printf("选票统计与运动员排名\n");
printf("已发放选票:\t%d\n",xp);
printf("废 票:\t%d\n",fp);
printf("有效票数:\t%d\n",xp-fp);
for(i=0;i<100;i++)
{
for(j=0;j<10;j++)
{
if(sc[i][0]>sc[pm[j]][0])
{
int n;
for(n=9;n>j;n--)
{
pm[n]=pm[n-1];
}
pm[n]=i;
break;
}
else
if(sc[i][0]==sc[pm[j]][0])
{
if(sc[i][1]>sc[pm[j]][1])
{
int n;
for(n=9;n>j;n--)
{
pm[j]=pm[j-1];
}
pm[j]=i;
break;
}
}
}
}
printf(" 十佳运动员排名得分:\n");
printf("名次\t运动员编号\t合计得分\t合计得票数\t\n");
for(i=0;i<10;i++)
{
if(pm[i]!=-1)
printf("%d\t%d\t\t%d\t\t%d\n",i+1,pm[i]+1,sc[pm[i]][0],sc[pm[i]][1]);
}
printf("按回车键返回......\n");
getchar();
getchar();
}
void main()
{
int score[100][2]={0,0};
int xpcount = 0;
int feipiao = 0;
int flag=0;
while(true){
system("cls");
int tpjg=0;
printf("优秀运动员评选系统\n");
printf("1.进行投票!\n");
printf("2.统计选票并查看运动员排名!\n");
printf("3.退出系统!\n");
scanf("%d",&flag);
switch (flag)
{
case 1:
tpjg=toupiao(score);
if(tpjg!=0)
xpcount++;
if(tpjg==2)
feipiao++;
break;
case 2:
tjpm(score,xpcount,feipiao);
break;
case 3:
exit(0);
}
}
}
上一个:C语言新手入门怎么做?
下一个:关于C语言....很简单