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

为啥提交好几次才会有一次出来数?而且最后那个排序不对劲 大神求助

#include <stdio.h>

#define N 10

void printscore(int score[])

    {

        int l;

        for(l=0;l<N;l++)

        {

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

        }

    }

int getall(int score[])

{

    int sum=0;

    int i;

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

    {

        sum=sum+score[i];

    }

    return sum;

}

int getmax(int score[])

{

    int x;

    int max=score[x];

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

    {

        if(score[x]>max)

        {

            max=score[x];

        }

    }

    return max;

}

int getmin(int score[])

{

    int y;

    int min=score[y];

    for(y=0;y<N;y++)

    {

        if(score[y]<min)

        {

            min=score[y];

        }

    }

    return min;

}

void Getdownorder(int score[])

{

    int o,p,temp;

    for(o=N-2;o>=0;o--)

    {

        for(p=0;p<=o;p++)

        {

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

            temp=score[p];

            score[p]=score[p+1];

            score[p+1]=temp;

            

        }

    }

printscore(score);

}

int main()

{

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

 int a=   getall(score);

 int b= getmax(score);

 int c= getmin(score);

 int d= a/N;

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

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

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

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

Getdownorder(score);

    return 0;

}


正在回答

2 回答

786

98

63

78

98 82 79 81 75 91 67 66 63 84

这是我运行出来的结果,

#include <stdio.h>#define N 10void printscore(int score[]){        int l;        for(l=0;l<N;l++)        {            printf("%d ",score[l]);        }}int getall(int score[]){    int sum=0;    int i;    for(i=0;i<N;i++)    {        sum=sum+score[i];    }    return sum;}int getmax(int score[]){    int x=0;    int max=score[x];    for(x=0;x<N;x++)    {        if(score[x]>max)        {            max=score[x];        }    }    return max;}int getmin(int score[]){    int y=0;    int min=score[y];    for(y=0;y<N;y++)    {        if(score[y]<min)        {            min=score[y];        }    }    return min;}void Getdownorder(int score[]){    int o,p,temp;    for(o=0;o<N-2;o++)    {        for(p=0;p<=o;p++)        {            if(score[p]<score[p+1])            {                temp=score[p];                score[p]=score[p+1];                score[p+1]=temp;            }        }    }    printscore(score);}int main(){    int score[N]={67,98,75,63,82,79,81,91,66,84};    int a=getall(score);    int b=getmax(score);    int c=getmin(score);    int d=a/N;    printf("%d\n",a);    printf("%d\n",b);    printf("%d\n",c);    printf("%d\n",d);    Getdownorder(score);    return 0;}


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

giantbili 提问者

非常感谢!
2018-08-01 回复 有任何疑惑可以回复我~
#2

giantbili 提问者

复制过去的?还是哪里修改了?
2018-08-01 回复 有任何疑惑可以回复我~
#3

修裾欲溯空 回复 giantbili 提问者

我 改的地方不多,就是给你的x,y赋了初值
2018-08-01 回复 有任何疑惑可以回复我~
#4

giantbili 提问者 回复 修裾欲溯空

为啥我的结果是786 98 63 78 84 66 81 81 79 63 63 67 67 67
2018-08-01 回复 有任何疑惑可以回复我~
#5

修裾欲溯空 回复 giantbili 提问者

可能是你的冒泡错了
2018-08-01 回复 有任何疑惑可以回复我~
#6

giantbili 提问者 回复 修裾欲溯空

那你是咋改的??
2018-08-01 回复 有任何疑惑可以回复我~
查看3条回复

你没有发现我最后一行也有问题吗?emmmmm,我已经很久没有手写排序 了

sort(int a[])//冒泡的一般形式
{
  
    int i,t,j;
    for(i=0;i<N-1;i++)
      {
            for(j=0;j<N-1-i;j++)
                  {
                           if(a[j]<a[j+1])
                                    {
                                            t=a[j];
                                            a[j]=a[j+1];      
                                            a[j+1]=t;
                                     }
                   }
      }
}


1 回复 有任何疑惑可以回复我~
#1

修裾欲溯空

少了个返回值类型,你加一下吧,我刚刚写了的,怎么不见了
2018-08-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥提交好几次才会有一次出来数?而且最后那个排序不对劲 大神求助

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