裁判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個小時才能拿出可用的程序。