演讲比赛评分系统c源码_编写演讲比赛评分程序

hacker|
131

文章目录:

演讲比赛评分系统

为你提供 1 份针对演讲比赛评分系统 de 适用于初学者 de 代码,

请与我们联系进 1 步需求,,联系我们需要提供问题和联系方式,有可能帮你,但是绝对救急,请用BaiduHi为我留言,

此回复针对所有来访者和需求者有效,

ES:\\FD78E699CF82051C8F4E7FAD8F2D9D17

利用C语言开发一个“比赛评分系统”。

参考下面的代码。下面的代码是10个评委的:

#includestdio.h

typedef struct judge

{

int number;

double score;

} judge;

void sort(judge Score[10])

{

int iter,iterb,temp;

double dtemp;

for(iter=0;iter9;++iter)

{

for(iterb=0;iterb9;++iterb)

{

if(Score[iterb].scoreScore[iterb+1].score)

{

dtemp=Score[iterb].score;

Score[iterb].score=Score[iterb+1].score;

Score[iterb+1].score=dtemp;

temp=Score[iterb].number;

Score[iterb].number=Score[iterb+1].number;

Score[iterb+1].number=temp;

}

}

}

}

void print_all(judge Score[10])

{

int iter;

for(iter=0;iter10;iter++)

{

printf("%d %.2f \n",Score[iter].number,Score[iter].score);

}

}

void main()

{

judge Score[10];

int temp,iter;

double sum=0.0,aver;

printf("请输入十位评委的分数:\n");

for(iter=0;iter10;++iter)

{

printf("请输入%d号评委的分数:",iter+1);

scanf("%d",temp);

if(temp1.0||temp100.0)

{

printf("\n输入错误,分数应该为1~100\n");

--iter;

}

else

{

Score[iter].number=iter+1;

Score[iter].score=temp;

printf("\n");

}

}

sort(Score);

// print_all(Score);

for(iter=1;iter9;++iter)

{

sum+=Score[iter].score;

}

aver=sum/8.0;

printf("总分为%.2f,平均分为%.2f\n",sum,aver);

for(iter=0;iter10;++iter)

{

Score[iter].score-=aver;

if(Score[iter].score0.0)

{

Score[iter].score=-Score[iter].score;

}

}

sort(Score);

// print_all(Score);

printf("评分最公正的评委为:");

for(iter=0;iter10;++iter)

{

printf("%d ",Score[iter].number);

if(Score[iter].score==Score[iter+1].scoreiter!=9)

{

continue;

}

else

{

break;

}

}

printf("\n评分最不公正的评委为:");

for(iter=9;iter0;--iter)

{

printf("%d ",Score[iter].number);

if(Score[iter].score==Score[iter-1].scoreiter!=0)

{

continue;

}

else

{

break;

}

}

}

修改C程序:演讲比赛评分系统

#include stdio.h

#include string.h

#define N 10 /*没有宏定义N的值*/

void main()

{

void sort(float array[],int n);

float average(float array[10]);

void arran(float num[],char name[N]);

float b[10]={0.0};/*定义浮点型要用0.0,而且你再循环你定义全是0二重循环完后,b[i]的值一直都是0*/

int i,j,k;

char name[10];/*没用定义name*/

float a[10][5];

float num[15];

for (k=0;k15;k++)

{

for (i=0;i10;i++)

{

for(j=0;j5;j++)

{

scanf("%f",a[i][j]);

b[i]=b[i]+a[i][j];

}

}

sort(b,10);

num[k]=average(b);/*直接写浮点型数组名就可以了不需要写b[10]*/

}

scanf("%s",name);/*直接写字符串名就可以了,它相当于指针,系统会自动移动*/

arran(num,name);

printf("获奖结果如下:\n\n");

printf("一等奖:%s %f分\n\n二等奖:\n",name,num);

for(k=1;k4;k++)

printf("%10s %f分 ",name[k],num[k]);

printf("\n\n三等奖:\n\n");

for(k=4;k9;k++)

printf("%10s %f分 ",name[k],name[k]);/*漏了分号*/

}

void sort(float array[],int n )

{

int i,j,k;

float t;/*t应该定义为浮点型*/

for(i=0;in-1;i++)

{

k=i;/*少了分号*/

for(j=i+1;jn;j++)

if(array[j]array[k])

k=j;

t=array[k];

array[k]=array[i];

array[i]=t;/*漏了分号*/

}

}

void arran(float num[],char name[N])

{

int i,j,max;

float temp1;

char temp2[8];

for(i=0;iN;i++)

{

max=i;

for(j=i;jN;j++)

{

if(num[max]num[j])

max=j;/*少了分号*/

}

temp1=num[i];

strcpy(temp2,name[i]);

num[i]=num[max];

strcpy(name[i],name[max]);/*函数格式错误*/

num[max]=temp1;

strcpy(name[max],temp2);

}

float average(float array[10])/*不能用Float*/

{

int i;

float aver,sum;

for(i=2;i9;i++)

sum=sum+array[i];

aver=sum/8;

return(aver);/*少了分号*/

}

楼主,改了,还有三个错误。改不了,因为不知道你的实际意思,不好改,说实话,你的C语言应该要好好加强一下,很多的语法错误,很多函数你都用错,基本格式也不对,编程风格有待加强,你经常漏写分号,你要多写程序,不要写那么复杂的,先从基本算法写起吧,这是我给你的一些建议

2条大神的评论

  • avatar
    访客 2022-07-02 下午 05:47:01

    i++) { for(j=0;j5;j++) { scanf("%f",a[i][j]); b[i]=b[i]+a[i][j]; } } sort(b,10); num[k]=average(b);/*直接写浮

  • avatar
    访客 2022-07-02 下午 03:21:47

    *定义浮点型要用0.0,而且你再循环你定义全是0二重循环完后,b[i]的值一直都是0*/ int i,j,k; char name[10];/*没用定义name*/ float a[10][5]; float num[15]; for (k=0;k15;k++) { for (i=0;i

发表评论