裁判c语言
㈠ c语言程序设计 裁判打分系统
#include <stdio.h>
int main()
{
double a[5];
double sum,min,max;
int i;
for(i=0;i<5;i++) //循环5次
{
scanf("%lf",&a[i]); //输入分数
if(i==0) //如果是第一个数,就设置最大值最小值为第一个数
{
min=a[i];
max=a[i];
}
else{ //若不是第一个数,那么如果这个数比当前最大值还大,则设为最大值(最小值同理)
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
}
sum+=a[i]; // 计算总和
}
printf("%lf",(sum-min-max)/3); //总和减去最大值,最小值,除以个数
}
㈡ 裁判评分的C程序,建两个函数,一个是排序,另一的是去头去尾求平局值。改错
问题很多
1:一个是返回值类型和定义的错误
2:局部变量和全局变量的混淆
3:对于效率的不重视
#include "stdafx.h"
#include<conio.h>
#include<stdio.h>
#include<string.h>
int paixu(int a[],int k)//此处如果要返回数组,应该是:int* paixu(int* a, int k) 其实是完全不用返回的,因为a数组所在的区域是一定的,而且将里面的数据已经进行了排列
{
int i,j,b;
for(i=0;i<k;i++)//从效率上讲,此处这样写更好 for(i=0;i<k-1;i++),可以少进入一次循环,for循环还是比较耗时的,数据小时感觉不出来,但是如果很大时很厉害
for(j=i;j<k;j++)//从效率上讲,此处这样更好 for(j=i + 1;j<k;j++) 这样就不要浪费一次自身比较
if(a[i]>a[j])
{
b=a[i];
a[i]=a[j];
a[j]=b;
}
return (a[]);//最好不返回,这时此处不写或者写上return; 或者用我给的定义要返回就写 return a;
}
int jishuan(int a[],int k)
{
int all,average,i;
for(i=1;i<(k-1);i++)
all=+a[i];
average=all/(k-2);//如果k = 2怎么办,请给一个除0异常处理
return average;
}
void main(void)
{
int b[1000][1000],hang[1000],a[100000],i,j,h,l,average;
printf("input hang number:");
scanf("%d",&h);
printf("input lie number:");
scanf("%d",&l);
for(i=0;i<h;i++)
{
printf("input %c th score \n",i);
for(j=0;j<l;j++)
scanf("%d",&b[i][j]);
}
for(i=0;i<h;i++)
{
for(j=0;j<l;j++)
{
hang[j]=b[i][j];
}
paixu(hang[],l);//此处不接收返回,所以就最好不要管返回了
jishuan(hang[],l);//此处必须要接收返回,因为下面一句的average是jishuan内部的局部变量,外面看不到,所以可以写成int average = jishuan(hang[],l);
a[i]=average;//照我上面修改了就可以不用管了
paixu(a[],h);//此处有问题,最好放在这个函数块的外面,一则效率有提高,二则避免下次给进的数据将相应位已有的排序后的数据覆盖,非常危险
}
for(i=0;i<h;i++)
printf("%c ",a[i]);
getch();
}
㈢ C语言程序设计:裁判评分系统.求源或者给一个类似的,要求在补充里,财富值我还可以加。急需!
#include <stdio.h>
#include <stdlib.h>
#define N 10
#define M 7
struct athlete
{
int num;
char name[N];
double grade;
}ath[N + 1];
//(1)预先输入运动员的号码与姓名
void input()
{
int i;
for(i = 1; i <= N; i++)
{
system("cls");
printf("请输入第%d个运动员的号码和姓名,以空格隔开\n",i);
scanf("%d %s",&ath[i].num, ath[i].name);
}
system("cls");
}
//(2)运动员按输入顺序完成比赛
void getGrade()
{
int i,j,max,min;
int data[M+1];
for(i = 1; i <= N; i++)
{
max = -100000000;
min = 100000000;
int sum = 0;
for(j = 1; j <= M; j++)
{
system("cls");
printf("请输入第%d个裁判给第%d个运动员的成绩\n",j,i);
scanf("%d",&data[j]);
if(data[i] > max)
max = data[i];
if(data[i] < min)
min = data[i];
sum += data[i];
}
ath[i].grade = 1.0 * (sum - max - min) / (M - 2);
}
system("cls");
}
//(3)按成绩有高到低进行名次排列
void sort()
{
int i,j;
for(i = 1; i <= N; i++)
{
for(j = i + 1; j <= N; j++)
if(ath[i].grade < ath[j].grade)
{
ath[0] = ath[i];
ath[i] = ath[j];
ath[j] = ath[0];
}
}
printf("名次 姓名 成绩\n");
for(i = 1; i <= N; i++)
{
printf("%4d %4s %.1lf\n",i,ath[i].name,ath[i].grade);
}
}
//(4)输出金银铜
void output123()
{
int i = 0, cnt = 0;
printf("金奖:\n");
do{
i++;
printf("%4d %4s\n",ath[i].num,ath[i].name);
}while(ath[i].grade - ath[i+1].grade<1e-6);
printf("银奖:\n");
do{
i++;
printf("%4d %4s\n",ath[i].num,ath[i].name);
}while(ath[i].grade - ath[i+1].grade<1e-6);
printf("铜奖:\n");
do{
i++;
printf("%4d %4s\n",ath[i].num,ath[i].name);
}while(ath[i].grade - ath[i+1].grade<1e-6);
}
int main()
{
input();
getGrade();
sort();
output123();
return 0;
}
辛苦了半天0.0
㈣ 实现一个有n个裁判打分系统,C语言题目 麻烦高手帮忙啊!
#include<stdio.h>
#include<stdlib.h>
#define
MAX
100
void
main(void)
{
int
n,i=0;
float
aver=0.0,sum=0.0,*start,*p,max,min;
//获取裁判数n
do{
printf("请输入裁判数--->n:\n");
scanf("%d",&n);
}while((n<=2)
||
(n>MAX));
start
=
(float
*)malloc(n*sizeof(float));
p
=
start;
//获取裁判打分,带检测,超出范围的重新打分
do
{
printf("请裁判%d打分:",i);
scanf("%f",p);
if((*p<0)
||
(*p>100))
printf("打分超出范围,请重新打分:\n");
else
{
i++;
p++;
}
}while(i!=n);
p
=
start;
max=*p;
min=*p;
//求最高分,最低分和平均分
for(i=0;i<n;i++)
{
if(*p
>
max)
max=*p;
else
if(*p
<
min)
min=*p;
sum
=
sum
+
(*p);
p++;
}
aver
=
(sum
-
max
-
min)/(n-2);
printf("去掉一个最高分%6.2f分,去掉一个最低分%6.2f分,平均分为%6.2f分。\n",max,min,aver);
}
㈤ C语言题目,提交到在线裁判系统说是输出格式错误,请问怎么错了怎么改正
哦,他说只输出一行,所以去掉printf("\n");因为\n换行就成输出两行文本了
㈥ C语言作业,裁判评分系统
犯嘀咕
㈦ 7个裁判给选手打分,要求去掉最高分和最低分,求平匀分,用c语言怎么做
将7个数赋值给一个数组,然后进行排序,排序后设置一个sum=0值将数组中第二个值到第六个值依次加起来(这样就去掉了最高分和最低分),最后将sum除以5就行了
㈧ C语言程序设计裁判打分系统
# include <stdio.h>
# define N 4
void main()
{
int a[N] ={0};
int i,min,max,sum;
sum = 0;
for(i=0; i<N; i++)
{
printf("请输入裁判给的分数:");
scanf("%d",&a[i]);
if (a[i]<0 || a[i]>100)
{
printf("输入有误,请重新输入:");
scanf("%d",&a[i]);
}
}
min = a[0];
max = a[0];
for (i=0; i<N; i++)
{
if (min > a[i])
min = a[i];
if (max< a[i])
max = a[i];
sum += a[i];
}
printf("该选手的平均分为:%d",(sum-min-max)/(N-2));
}
㈨ 求大神解答C语言编程
#include <stdio.h>
#include <stdlib.h>
//定义一个结构体保存裁判id和分数
typedef struct{
unsigned char judegId;//裁判ID
unsigned char judegScore;//裁判给的分数
}judge;
int main()
{
judge jg[10];
int i;
int score;
for(i = 0;i < 10;i++)
{
printf("请输入裁判%d打的分数\n",i+1);
scanf("%d",&score);
getchar();
if(score <= 0 || score > 100)
{
printf("输入分数无效,重新输入,分数要求1-100!\n");
printf("请输入裁判%d打的分数\n",i+1);
scanf("%d",&score);
getchar();
if(score <= 0 || score > 100)
{
printf("无效输入,程序退出!\n");
return -1;
}
}
jg[i].judegId = i;
jg[i].judegScore = score;
}
//对数组从分数低到分数高排序
for(i = 0;i < 9;i++)
{
if(jg[i].judegScore > jg[i+1].judegScore)
{
unsigned char tmpId = jg[i].judegId;
unsigned char tmpScore = jg[i].judegScore;
jg[i].judegId = jg[i+1].judegId;
jg[i].judegScore = jg[i+1].judegScore;
jg[i+1].judegScore = tmpScore;
jg[i+1].judegId = tmpId;
}
}
//打印所有得分
printf("选手得分为:\n");
for(i = 0;i < 10;i++)
{
printf("%d ",jg[i].judegScore);
}
printf("\n");
//计算评价得分
unsigned short sum = 0;
for(i = 1;i < 9;i++)
{
sum+=jg[i].judegScore;
}
unsigned char average = sum/8;
printf("去掉最高分%d,最低分%d,评价得分为%d分\n",jg[9].judegScore,jg[0].judegScore,average);
unsigned char fairIndex0 = 0;
unsigned char unfairIndex = 0;
//查找与平均值差距最小的
for(i = 1;i < 10;i++)
{
//abs为求绝对值函数
if(abs(jg[i].judegScore-average) < abs(jg[fairIndex].judegScore-average))
{
fairIndex = i;
}
}
printf("最公平的教练是%d,打分为%d\n",jg[fairIndex].judegId,jg[fairIndex].judegScore);
//查找与平均分差距最大的
for(i = 1;i < 10;i++)
{
if(abs(jg[i].judegScore-average) > abs(jg[unfairIndex].judegScore-average))
{
unfairIndex = i;
}
}
printf("最不公平的教练是%d,打分为%d\n",jg[unfairIndex].judegId,jg[unfairIndex].judegScore);
return 0;
}
//留一个问题给你,可能有两个裁判是最公平或者最不公平的,这个自己想想怎么做
㈩ C语言程序设计:有十个选手参加歌唱比赛,十个裁判对每个选手的演唱进行打分
程序很简单不难写,但这个程序也要考虑很多方面,就你提的这几点也不全面。最少也需要2~3个小时才能拿出可用的程序。