输出成绩降序排列时有乱码。
#include <stdio.h> //计算考试总分 int total(int score[]) { int i; int total = 0; for(i=0;i<=9;i++) { total += score[i]; } return total; } //计算考试最高分数 int highest(int score[]) { int i; for(i=0;i<=9;i++) { if(score[i]>score[i+1]) //调换顺序 { int n = score[i]; score[i] = score[i+1]; score[i+1] = n; } } return score[9]; } //计算考试最低分数 int lowest(int score[]) { int i; for(i=0;i<=8;i++) { if(score[i]<score[i+1]) { int n = score[i]; score[i] = score[i+1]; score[i+1] = n; } } return score[0]; } //计算考试平均分数 int average(int score[]) { int n = total(score); int av = n/10; return av; } //考试分数降序排列 int down_ordinary(int score[]) { int i; int j; for(i=9;i>=1;i--) { for(j=1;j<=i;j++) { if(score[j]<score[j+1]) { int n = score[j]; score[j] = score[j+1]; score[j+1] = n; } } } printf("考试成绩降序排列为:"); for(i=1;i<=9;i++) { printf("%d ",score[i]); } return 0; } //主函数 int main() { int score[10]={67,98,75,63,82,79,81,91,66,84}; printf("考试总分为%d\n",total(score)); printf("考试最高分为%d\n",highest(score)); printf("考试最低分为%d\n",lowest(score)); printf("考试平均分为%d\n",average(score)); down_ordinary(score); return 0; }
输出结果
考试总分为786 考试最高分为98 考试最低分为75 考试平均分为78 考试成绩降序排列为:586547409 98 91 84 82 81 79 67 66
为什么多了一个586547409出来?还有 75,63两项不见了