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

求解答啊 不知道哪错了 运行不出来

#include <stdio.h>

int main()

{

    int score[N]={67,98,75,63,82,79,81,91,66,84};

    int total = fun1(score);

    int max = fun2(score);

    int min = fun4(score);

    int average = total/10;

    fun3(score);

    printf("%d",max);

    printf("%d",min);

    printf("%d",total);

    printf("%d",average);

    return 0;

}


int fun1(int score[]){

    int total = 0;

    for(int i=0;i<10;i++){

        total += score[i];

    }

    return total;

}


int fun2(int score[]){

    int max;

    for(int i=0;i<9;i++){

        if(score[i]>max){

            max = score[i];

        }

    }

    return max;

}


int fun4(int score[]){

    int min;

    for(int i=0;i<9;i++){

        if(score[i]<min){

            min = score[i];

        }

    }

    return min;

}


void fun3(int score[]){

    for(int i=8;i>=0;i--){

        for(int 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;

            }

        }

    }

    for(int i=0;i<10;i++){

    printf("%d ",score[i]);

    }

}


提问者:慕码人9509864 2018-11-22 20:53

个回答

  • weixin_慕运维7382903
    2018-11-23 14:45:12
    已采纳

    求最大值、最小值等几个函数判断循环结束的条件应该为i<10或i<=9

  • 程序员003
    2018-12-19 21:34:46

    必须先声明函数,然后才能调用函数,而且数组里的N是不用加的,放在编译器里是错误的,因为N并未声明,慕课网的代码运行有一点问题,换成下边在编译器运行是可以的,希望可以帮助到你。


    #include <stdio.h>

    int fun1(int score[]){

        int total = 0;

        for(int i=0;i<10;i++)

        {

            total += score[i];

        }

        return total;

    }

    int fun2(int score[]){

    int max=score[0];

        for(int i=0;i<9;i++)

        {

            if(score[i]>max)

            {

                max = score[i];

            }

        }

        return max;

    }

    int fun4(int score[]){

        int min=score[0];

        for(int i=0;i<9;i++){

            if(score[i]<min){

                min = score[i];

            }

        }

        return min;

    }

    void fun3(int score[]){

        for(int i=8;i>=0;i--){

            for(int 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;

                }

            }

        }

        for(int i=0;i<10;i++){

        printf("%d ",score[i]);

        }

        printf("\n");

    }

    int main()

    {  

        int score[]={67,98,75,63,82,79,81,91,66,84};

        int total = fun1(score);

        int max = fun2(score);

        int min = fun4(score);

        int average = total/10;

        fun3(score);

        printf("%d\n",max);

        printf("%d\n",min);

        printf("%d\n",total);

        printf("%d\n",average);

        return 0;

    }


  • 慕妹9358413
    2018-12-01 00:00:14

    除了循环条件外,还有在函数实现的时候int score[N]是不对的,改成int score[]就好了