求一个一维数组内十个学生成绩的最高分最低分和平均分

Gu_Tamud 2011-07-18 08:39:06
如题,下面是我写的代码:
#include<stdio.h>
#include<conio.h>
#include<math.h>
int Max,Min;
void main()
{
float ave,score(int array[]);
int i,a[10];
printf("请输入数组元素:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
ave=score(a);
printf("最高分=%d\n最低分=%d\n平均分=%f\n",Max,Min,ave);
getch();
}
float score(int array[])
{
int i,Sum=0;
float Aver;
for(i=0;i<10;i++)
{
Max=array[0];Min=array[0];
Sum=Sum+array[i];
if(array[i]>=Max)
Max=array[i];
if(array[i]<=Min)
Min=array[i];
}
Aver=Sum/10;
return(Aver);
}
编译没有问题,但是运行结果却是错的,请问问题出在哪里呢?
...全文
3576 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gu_Tamud 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 quan958201599 的回复:]

引用楼主 gu_d_axce 的回复:
如题,下面是我写的代码:
#include<stdio.h>
#include<conio.h>
#include<math.h>
int Max,Min;
void main()
{
float ave,score(int array[]);
int i,a[10];
printf("请输入数组元素:\n");
……
有一点不是很……
[/Quote]
因为在VS2010或者其他编译器当中运行的黑框会一闪而过,加上getch()可以让黑框不闪过
  • 打赏
  • 举报
回复
[Quote=引用楼主 gu_d_axce 的回复:]
如题,下面是我写的代码:
#include<stdio.h>
#include<conio.h>
#include<math.h>
int Max,Min;
void main()
{
float ave,score(int array[]);
int i,a[10];
printf("请输入数组元素:\n");
……
[/Quote]有一点不是很明白为什么很多人都在主函数的最后在加一个getch();这个有什么特殊的作用吗?
AmBeta 2011-07-18
  • 打赏
  • 举报
回复
if (array[i]<=Min)
这句话前面加一个else貌似就可以了,具体为什么静候大神~~
Gu_Tamud 2011-07-18
  • 打赏
  • 举报
回复
恩,还有
Aver=Sum/10;
这句也应该改成
Aver=(float)Sum/10;
谢谢大家!
無_1024 2011-07-18
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<conio.h>
#include<math.h>
int Max,Min;
void main()
{
float ave,score(int array[]);
int i,a[10];
printf("请输入数组元素:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
ave=score(a);
printf("最高分=%d\n最低分=%d\n平均分=%f\n",Max,Min,ave);
getch();
}
float score(int array[])
{
int i;
float Sum=0.0;
float Aver;
Max=array[0];
Min=array[0];
for(i=1;i<10;i++)
{
Sum=Sum+array[i];
if(array[i] >= Max)
Max=array[i];
if(array[i] <= Min)
Min=array[i];
}
Aver=Sum/10;
return(Aver);
}

ccnadogteam2 2011-07-18
  • 打赏
  • 举报
回复
for(i=0;i<10;i++)
{
Max=array[0];Min=array[0];

每次都赋值了
proghua 2011-07-18
  • 打赏
  • 举报
回复
sorry,有个错误
float score(int array[])
{
int i,Sum=array[0];
float Aver;
Max=array[0];Min=array[0];
for(i=1;i<10;i++)
{
Sum=Sum+array[i];
if(array[i]>=Max)
Max=array[i];
if(array[i]<=Min)
Min=array[i];
}
Aver=Sum/10;
return(Aver);
}
proghua 2011-07-18
  • 打赏
  • 举报
回复
float score(int array[])
{
int i,Sum=0;
float Aver;
Max=array[0];Min=array[0];
for(i=1;i<10;i++)
{
Sum=Sum+array[i];
if(array[i]>=Max)
Max=array[i];
if(array[i]<=Min)
Min=array[i];
}
Aver=Sum/10;
return(Aver);
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧