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

怎么提交第一次正确,第二次提交就错


#include <stdio.h>

/*总分*/

int zongfen(int arr[10])

   {int sum=0;

    int i;

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

        {

          sum +=arr[i] ;

        }

     return sum;   

   }


/*最高分数*/   

int max(int arr[10]) 

    { int maxx=0;

      int i;

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

        {

         if(arr[i]>maxx)

           maxx=arr[i];

        } 

       return maxx; 

    }

/*最低分数*/    

int smlls(int arr[10]) 

    { int smll=arr[0];

      int i;

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

        {

         if(arr[i]<smll)

           smll=arr[i];

        } 

       return smll; 

    } 

    

/*平均分数*/    

float pjf(int arr[10])

{

 float sum=0;

    int i;

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

        {

          sum +=arr[i] ;

        }

     return sum/i;    

}


/*从高到低排列*/

int smllmax(int arr[10])

   {

       int i,j;

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

         {

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

            if(arr[j]<arr[j+1])

              {

                int dat=0;

                dat=arr[j];

                arr[j]=arr[j+1];

                arr[j+1]=dat;

                

              }

           

         }

    

      printf("从高到低:");   

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

         {

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

         }

         

    return 0;     

   }

   

   

int main()

{  

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

    

    printf("这次总分:%d\n",zongfen(score));

    printf("最高分是:%d\n",max(score));

    printf("最少分是:%d\n",smlls(score));

    printf("平均分是:%.2f\n",pjf(score));

    smllmax(score);

    return 0;

}


提问者:慕沐4177655 2018-11-13 11:54

个回答

  • 慕工程2598930
    2018-11-13 20:22:55

    你在排序那里错了,你要把所有数全部排一遍,而不是只排i位以前的数,这题有两种改法

    第一种改if:if(arr[j]<arr[i])

                 { int dat;

                   dat=arr[j];

                   arr[j]=arr[i];

                   arr[i]=dat;}

    第二种改第二个for:  for(j=0;j<9;j++)