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

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

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

C
高朱子翼 2015-07-31 12:33:53
在一个长度为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;}
查看完整描述

3 回答

已采纳
?
来虐小学生

TA贡献20条经验 获得超4个赞

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

}


查看完整回答
反对 回复 2015-08-04
?
来虐小学生

TA贡献20条经验 获得超4个赞

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

查看完整回答
1 反对 回复 2015-08-04
?
来虐小学生

TA贡献20条经验 获得超4个赞

我尝试运行过了,首先你的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正常,但是你的降序排列貌似写的有问题,我再看看

查看完整回答
反对 回复 2015-08-04
  • 3 回答
  • 0 关注
  • 1618 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信