上地四方大众:谁对C语言编程熟悉 进帮帮忙

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 18:09:52
求一个歌手的比赛最后得分,要求是去掉最高和最低分求平均分,我是这样写的,不知道哪里错了,谁能帮我看看!谢谢。
#include<stdio.h>
void main()
{
int a[10],
int max=a[0],min=a[0],j,sum=0,
int ave,i;
printf(" please input 10 number:/n")
for(i=0,i<10,i++)
scanf("%d",a[i]);
for(i=0,i<10,i++)
if(max<a[i])
max=a[i];
for(i=0,i<10,i++)
if(min>a[i])
min=a[i];
for(i=0,i<10,i++
)
sum+=a[i];
ave=(sum-max-min)/8;
printf("the score is %d",ave);
}


这位兄弟,先给你改一下,我这边没有调试器,你再调试吧
#include<stdio.h>
void main()
{
int a[10],
int max,min,j,sum;
int ave,i;
j=0;
sum=0;
printf(" please input a number:/n")
scanf("%d",&a[i]);
max=a[0];
min=a[0];
for(i=0,i<10,i++)
{

if(max<a[i])
max=a[i];
if(min>a[i])
min=a[i];
sum+=a[i];
}
ave=(sum-max-min)/8;
printf("the score is %d",ave);
}
改后你每次输入一个分数就回车一次

1、scanf是读行而不是读字符的,你不能用它来一口气读那么多数字,计算机不认的;
2、定义和赋值不要放在一起,养成好习惯
3、你的程序效率太低,要三次循环,精简之后用一个循环就搞定了
汗阿,果然好久不写程序就犯了超级低级的错误呢。郁闷一下
楼下说的没错。

错误太多了,呵呵。
第一是你很多该用分号的地方用了逗号。
第二你在a[0]还没有值的时候就赋给max和min是不对的。读进去之后再赋值。
第三scanf里边写的是地址,用&a[i]吧,楼上的也错了。而且scanf可以这样读10个数的,没问题。楼上还有一个错,你给min赋初值0,想想这样最后min会是多少……
另外,平均分用整数能有什么用啊……晕。

按你的程序改了下就是这样

#include<stdio.h>
void main()
{
int a[10];
int max=0,min,j,sum=0;
int ave,i;
printf(" please input 10 number:");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
min=a[0];
for(i=0;i<10;i++)
if(max<a[i])
max=a[i];
for(i=0;i<10;i++)
if(min>a[i])
min=a[i];
for(i=0;i<10;i++)
sum+=a[i];
ave=(sum-max-min)/8;
printf("the score is %d",ave);
}