为了账号安全,请及时绑定邮箱和手机立即绑定

最后的综合练习

为什么最后的sort(score)可以输出倒序的成绩,还有上面求倒序成绩的时候为什么是i=N-2

正在回答

2 回答


 for(i=N-2;i>=0;i--){
  for(j=0;j<=i;j++){
  
 n-2的时候,j最大值是i=N-2,就是8,然后下边比较arr[8]和arr[9]的大小关系。arr[9]已经是最后一个元素。 如果上边写n-1的话下边判断数组元素大小j+1的时候就越界了。


0 回复 有任何疑惑可以回复我~

#include <stdio.h>
#define N 10
void printScore(int score[]){
    int i;
 printf("\n");
 for(i=0;i<N;i++){
  printf("%d\t",score[i]);
 }
 printf("\n");
}
int getTotalScore(int score[]){
 int sum = 0;
 int i;
 for(i=0;i<N;i++){
  sum+=score[i];
 }
 return sum;
}
int getAvgScore(int score[]){
 return getTotalScore(score)/N;
}
int getMax(int score[]){
 int max = -1;
 int i;
 for(i=0;i<N;i++){
  if(score[i]>max){
   max = score[i];
  }
 }
 return max;
}
int getMin(int score[]){
 int min = 100;
 int i;
 for(i=0;i<N;i++){
  if(score[i]<min){
   min=score[i];
  }
 }
 return min;
}
void sort(int score[]){
 int i,j;
 for(i=N-2;i>=0;i--){
  for(j=0;j<=i;j++){
   if(score[j]<score[j+1]){
    int temp;
    temp = score[j];
    score[j] = score[j+1];
    score[j+1] = temp;
   }
  }
 }
 printScore(score);
}
int main()
{
    int score[N]={67,98,75,63,82,79,81,91,66,84};
    int sum,avg,max,min;
     sum = getTotalScore(score);
     avg = getAvgScore(score);
     max = getMax(score);
  min = getMin(score);
    printf("总分是:%d\n",sum);
 printf("平均分是:%d\n",avg);
 printf("最高分是:%d\n",max);
 printf("最低分是:%d\n\n",min);
 printf("********成绩排名********\n");
 sort(score);
    return 0;
}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

最后的综合练习

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信