大牛们,我这个程序运行出来效果不对...但是不知道问题出在哪里?有谁能给解答一下吗?我把问题和我的代码都附在下面

在一个长度为10的整型数组里面,保存了班级10个学生的考试成绩。要求编写5个函数,分别实现计算考试的总分,最高分,最低分,平均分和考试成绩降序排序。


#include <stdio.h>

int arr1(int score[10])

    {   int i;

        int marks=0;

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

        {

            marks+=score[i];

        }

        return marks;

    }

    

int arr2(int score[10])

    {   int a,b;

        int trans1;

        for(a=8;a>=0;a--)

        {

            for(b=0;b<a;b++)

            {

                if(score[b]>score[b+1])

                {trans1=score[a];

                score[b]=score[b+1];

                score[b+1]=trans1;

                }

            }

        }

        return score[9];

    }

    

int arr3(int score[10])

    {   int c,d;

        int trans2;

        for(c=8;c>=0;c--)

        {

            for(d=0;d<c;d++)

            {

                if(score[d]<score[d+1])

                {trans2=score[d];

                score[d]=score[d+1];

                score[d+1]=trans2;}

                

            }

        }

        return score[9];

    }


int arr4(int score[10])

    {   int e;

        int averange=0;

        for(e=0;e<10;e++)

        {

            averange+=score[e];

        }

        averange=averange/10;

        return averange;

    }

    

    

    

int arr5(int score[10])

    {

        int m,n,x;

        int trans3;

        for(m=8;m>=0;m--)

        {

            for(n=0;n<m;n++)

            {

                if(score[n]<score[n+1])

                {trans3=score[n];

                score[n]=score[n+1];

                score[n+1]=trans3;}

                

            }

        }

        for(x=0;x<10;x++)

        {

            printf("%d",score);

        }

        return 0;

        

    }


int main()

{

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

    

    printf("总分是%d\n",arr1);

    printf("最高分是%d\n",arr2);

    printf("最低分是%d\n",arr3);

    printf("平均分是%d\n",arr4);

    printf("降序排序%s \n",arr5);

    return 0;

}


高朱子翼
浏览 1655回答 3
3回答

来虐小学生

# include <stdio.h>void sum(int arr[]){ int total=0; for (int i=0;i<10;i++) { total += arr[i]; } printf ("sum = %d\n",total); printf ("ave = %f\n",total/10.0);}void px(int arr[]){ for (int i=0;i<10;i++) { for (int j=9;j>=i;j--) { int tmp; if (arr[j]<arr[j-1])   { tmp = arr[j]; arr [j]=arr[j-1]; arr [j-1]=tmp; } } } for (i=0;i<10;i++) { printf ("%d  ",arr[i]); }}int main(){ int arra[10]; int i; for (i=0;i<10;i++) { printf ("%d:",i+1); scanf ("%d",&arra[i]); } sum (arra); px (arra); printf ("\n"); getchar (); return 0;}

来虐小学生

不对,你这错的太多了,我给你看看我的代码吧,实在太乱了。。

来虐小学生

我尝试运行过了,首先你的main函数里面就没把score数组传入各个函数int main(){    int score[10]={67,98,75,63,82,79,81,91,66,84};        printf("总分是%d\n",arr1(score));    printf("最高分是%d\n",arr2(score));    printf("最低分是%d\n",arr3(score));    printf("平均分是%d\n",arr4(score));    printf("降序排序%s \n",arr5(score));    return 0;}这样的话至少1234正常,但是你的降序排列貌似写的有问题,我再看看
打开App,查看更多内容
随时随地看视频慕课网APP