#include <stdio.h> int sum(int score[]){ int i,sum=0; for(i=0;i<10;i++){ sum+=score[i]; } printf("总分:%d\n",sum); float avg = sum/10.0; printf("平均分:%f\n",avg); } int max(int score[]){ int i,temp; for(i=0;i<9;i++){ if(score[i]>score[i+1]){ temp = score[i]; score[i] = score[i+1]; score[i+1] = temp; } } printf("最高分:%d\n",temp); } int min(int score[]){ int i,temp; for(i=0;i<9;i++){ if(score[i]<score[i+1]){ temp = score[i]; score[i] = score[i+1]; score[i+1] = temp; } } printf("最低分:%d\n",temp); } int rsort(int score[]){ int i,j,temp; for(i=10;i>=0;i--){ for(j=0;j<i;j++){ if(score[j]<score[j+1]){ temp = score[j]; score[j] = score[j+1]; score[j+1] = temp; } } } for(i=0;i<9;i++){ printf("%d,",score[i]); } } int main() { int score[10]={67,98,75,63,82,79,81,91,66,84}; sum(score); max(score); min(score); rsort(score); return 0; }
我也说个注意点:可能是你的笔误吧。冒泡排序的第一参数设置从10开始是不合理的。因为这样j的第一个值为9而a[j+1]造成访问未定义的空间。可能造成re。
思路不错,但是注意一点:每个函数的返回值是void类型,还有就是排序的那个函数少输出了一个。