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

哪位大神帮我解答下,为什么一个正确结果都得不出,每次运行得出的全是一串不同的数字

#include<stdio.h>
int Sum(int score[])
{
 int i;
 int sum=0;
 for (i = 0; i > 10; i++)
 {
  sum += score[i];//成绩总和
 }
 return sum;
}
int Max(int score[])//最大值函数
{
 int max;
 int max1 = score[0];
 int i;
 for (i = 1; i > 10; i++)
 {
  if (max1 >= score[i])
  {
   max = max1;
  }
  else
  {
   max = score[i];
  }
 }
 return max;
}
int Min(int score[])//最小值函数
{
 int min;
 int i;
 int min1 = score[0];
 for (i = 1; i > 10; i++)
 {
  if (min1 <= score[i])
  {
   min = min1;
  }
  else
  {
   min = score[i];
  }
 }
 return min;
}
int Average(int score[])
{
 int average;
 int Max(int score[]);
 average = Max(score) / 10;
 return average;
}
int Sort(int score[])//成绩降序排列函数
{
 int i, j;
 for (i = 0; i > 10; i++)
 {
  if (i != 9)
  {
   printf("%d,", score[i]);
  }
  else
  {
   printf("%d", score[i]);
  }
 }
 for (i = 8; i >= 0; i--)
 {
  for (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;
   }
  }
 }
 printf("----------排序之后-----------");
 for (i = 0; i > 10; i++)
 {
  if (i != 9)
  {
   printf("%d,", score[i]);
  }
  else
  {
   printf("%d", score[i]);
  }
 }
}
int main()
{
 int score[10] = { 67, 98, 75, 63, 82, 79, 81, 91, 66, 84 };
 int Sum(int score);
 int Max(int score);
 int Min(int score);
 int Average(int score);
 printf("%d", Sum);
 printf("%d", Max);
 printf("%d", Min);
 printf("%d", Average);
 int Sort(int score);
 getchar();
 return 0;
}

正在回答

4 回答

/* Note:Your choice is C IDE */

#include <stdio.h>

int Sum()   //计算总数和平均数

{

int i,sum=0;

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

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

    {

    sum+=score[i];

    }

    printf("总数是%d\n",sum);  //计算总数

    printf("平均数是%d\n",sum/10);

    return sum;

}


int Max()//计算最高分

{

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

int i;

int max=score[0];

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

{

if(score[i]>max)

{

    max=score[i]; 

}

}

printf("最大的值是%d\n",max);

return max;

}


int Min()//计算最低分

{

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

int i;

int min=score[0];

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

{

if(score[i]<min)

{

    min=score[i]; 

}

}

printf("最小值为%d\n",min);  

return min;

}


#include <stdio.h>

int height()  //计算从低到高

{

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

int i,j;

printf("%s\n","从高到低的排列顺序为:");

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

{

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

{

if(score[i]<score[j])

{

int temp;

temp=score[i];

score[i]=score[j];

score[j]=temp;

}

}

}

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

{

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

printf("  ");

}

return score[i];

}



int main()

{

Sum();

Max();

Min();

height();

return 0;

}

半个小时的题目吧,好久没有排序了,都忘记了

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

写代码的时候仔细一点,除了排序函数,你的最大最小求和平均函数,循环条件i>10,那么执行11次?12次?这就是你每次都得不出正确答案的原因

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

#include <stdio.h>


#define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0]))


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

int sum();

int sum1(int *sco, int size);

int max(int *sco, int size);

void mp( int *sco, int size );



int main()

{

    int size1 = ARRAY_SIZE(score);


int sumval =  sum1(score, size1 );


printf("sum=%d\n", sumval );

printf("avg=%d\n", sumval/size1 );

printf("max=%d\n", max( score , size1 ) );

mp( score , size1 ) ;

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

{

printf("mp%d=%d\n", i , score[i]);

}

    

    return 0;

}


int sum1(int *sco, int size){

if( NULL == sco ){

return -1;

}

int all = 0;

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

{

all += *sco;

sco++;

}

return all;

}


int max(int *sco, int size){

if( NULL == sco ){

return -1;

}

int max = 0;

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

{

if( max < *sco ){

max = *sco ;

}

sco++;

}

return max;

}


void mp( int *sco, int size ){

if( NULL == sco ){

return ;

}

for ( int i = 0; i < size-1; i++ )

{

for (int j = 0; j < size-i-1; j++)

{

if( *(sco+j) > *(sco+j+1) ){

int a;

a = *(sco+j);

*(sco+j) =*(sco+j+1);

*(sco+j+1) = a;

}

}

}


return ;


}

最下值没做 和最大值一样

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

#include <stdio.h>

#define N 10

/*求和*/

int sumScore(int score[])

{

    int sum=0;

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

    {

        sum=sum+score[i];

        

    }

    return sum;

}

/*求最高分*/

int maxScore(int score[])

{   int max;

    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;

            }

            

        }

        

    }

    max=score[9];

    return max;

}

/*求最低分*/

int minScore(int score[])

{

    int min;

    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;

            }

            

        }

        

    }

    min=score[0];

    return min;

}

/*求平均值*/

float averageScore(int score[])

{

    int sum=0;

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

    {

        sum=sum+score[i];

        

    }

    float average=(float)sum/N;

    return average;

    

}

/*降序排序*/

int descSort(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+1];

                score[j+1]=score[j];

                score[j]=temp;

            }

            

        }

    }

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

    {

        if(i!=9)

        {

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

        }

        else

        {

            

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

        }

    }

}

int main()

{

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

    printf("总分为:%d\n",sumScore(score));

    printf("最高分为:%d\n",maxScore(score));

    printf("最低分为:%d\n",minScore(score));

    printf("平均分为:%.1f\n",averageScore(score));

    descSort(score);

    return 0;

}

求和以及求平均值很简单;求最高分和最低分,你可以用冒泡排序从小到大排好,取数组的第一个和最后一个;至于降序排序,也可以用冒泡排序,原理与升序一样;

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

慕函数3481025 提问者

好的,谢谢了
2018-08-25 回复 有任何疑惑可以回复我~
#2

慕UI9212020

请问一下,最后主函数输出(比如printf("总分为:%d\n",sumScore(score));) score后面为什么不加[]啊?
2018-09-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

哪位大神帮我解答下,为什么一个正确结果都得不出,每次运行得出的全是一串不同的数字

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