#include <stdio.h>
#define N 10
int sort(int score[]){
int i,s,a;
for(i=0;i<N;i++)
{
if(socre[i]>score[i+1])
{
s=score[i];
score[i]=score[i+1];
score[i+1]=score[i];
}
a+=score[i];
}
}
int max(int score[]){
return score[N];
}
int min(){
return score[0];
}
int average(){
return a/N;
}
int all(){
return a;
}
int main()
{
int score[N]={67,98,75,63,82,79,81,91,66,84};
return 0;
printf("考试总分为%d\n",all);
printf("考试的最高分为%d\n",max);
printf("考试的最低分为%d\n",min);
printf("考试的平均分为%d\n",average);
printf("考试成绩升序排序为%d\n",score);
}首先,你的函数写的有问题,首先在主函数这里,函数的调用需要参数的传递,因为需要对数组里的成绩进行操作,但是你没有,应该写为all(score[10]);其次,在函数的编写上及逻辑上有差入,你是希望通过函数sort对成绩进行排序,后面的函数都应用排好序的数组对吧,那么在第七行你的score拼写错了,其次sort函数里,你的排序还不能达到效果,举个例子你就会明白,以这道题为例,按照你的代码,在排序的时候是这样的,第一个和第二个比较不变,第二个和第三个比较,对调,这样98到第三,75到第二,接着第三个和第四个比较,对调则得到63为第三个,但是你发现了吗,63比前面两个都小,但是63无法再往前排了,所以你的代码可以说只完成了一次比较排序,应该在循环外面再加一个循环for(j=8;j>=0;j--)这样把里面循环的条件改一下for(i=0;i<=i;i++),那就可以实现正常排序了;再者,你想要在其他函数使用这个排序好的数组那你就要将其进行传递,如果没有参数传递,是没办法得到数组数据的。
希望采纳,谢谢
参数传递,参数传递