问答详情
源自:6-12 综合练习

有没有问题,这样写

#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;
}

提问者:阿伟_M囧君 2015-02-28 16:42

个回答

  • Fiona0126
    2015-02-28 22:24:21

    我也说个注意点:可能是你的笔误吧。冒泡排序的第一参数设置从10开始是不合理的。因为这样j的第一个值为9而a[j+1]造成访问未定义的空间。可能造成re。

  • _潇潇暮雨
    2015-02-28 20:57:53

    思路不错,但是注意一点:每个函数的返回值是void类型,还有就是排序的那个函数少输出了一个。