C语言变成编程:射击比赛,感激不尽!!!
发布网友
发布时间:2022-10-11 15:43
我来回答
共2个回答
热心网友
时间:2023-10-13 17:04
/*
1.一共有10名运动员进行比赛。
2.每名运动员用慢中快三速射击、每种速度射击10次。
3.对10名运动员的总成绩进行排序。
4.按排序次序,用表格显示每名运动员的三组成绩及每组的总成绩和全部总成绩。
我是在是没有悬赏分...别的形式的报酬也是可以的。急用!
*/
#include <stdio.h>
/*所有的存放成绩的数组均设为全局变量*/
double s[10][3][10]; /*10运动员,3组 ,10**/
double sum[10][3]={{0,0,0},{0,0,0},{0,0,0}{,0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}; /*/ 每组的平均成绩*/
double tsum[10]={0,0,0,0,0,0,0,0,0,0}; /*运动员的全部总成绩*/
void sortitem() /*按总成绩排序的排序函数*/
{
int i,j,k,x,y;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(tsum[k]>tsum[j])k=j; /*选择排序*/
{
double temp=tsum[i];
tsum[i]=tsum[k];
tsum[k]=temp; /*交换总成绩*/
for(x=0;x<3;x++) /*交换每组的总成绩*/
{
temp=sum[i][x];
sum[i][x]=sum[k][x];
sum[k][x]=temp;
for(y=0;j<10;y++)
{
temp=s[i][x][y];
s[i][x][y]=s[k][x][y];
s[k][x][y]=temp;
} /*交换每*的成绩*/
}
}
}
}
main()
{
int i,j,k;
for(i=0;i<10;i++)
{
printf("输入第%d个运动员的成绩",i+1);
for(j=0;j<3;j++)
{
printf("第%d组",j+1);
for(k=0;k<10;k++)
{
scanf("%f",&s[i][j][k]); /*输入成绩*/
sum[i][j]=sum[i][j]+s[i][j][k]; /*计算每一组的总成绩*/
tsum[i]=tsum[i]+s[i][j][k]; /*计算所有的总成绩*/
}
}
}
/*调用排序函数*/
sortitem();
/*输出结果*/
for(i=0;i<10;i++)
{
printf("第 %d 名运动员的成绩\n",i+1);
for(j=0;j<3;j++)
{
printf("第 %d 组射击成绩\n",j+1);
printf("---------------------------------------------------------------------------------\n");
printf("|第一*|第二*|第三*|第四*|第五*|第六*|第七*|第八*|第九*|第十*|组总分|\n");
for(k=0;k<10;k++)
{
printf("|%6.1f",s[i][j][k]);
}
printf("|%6.1f",sum[i][j]);
printf("|\n");
}
printf("---------------------------------------------------------------------------------\n");
printf("总成绩=%6.1f\n",tsum[i]);
printf("---------------------------------------------------------------------------------\n");
}
}
热心网友
时间:2023-10-13 17:04
c语言射击比赛帮实现