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

请问下大佬们,这个排列是哪里不对,为啥出来的结果还是乱序

#include <stdio.h>

int main()

{

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

    int sum=0,i,max,min,tamp;

    float ave;

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

    {

        sum=sum+score[i];

      

    }

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

    {

              

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

            {

                tamp=score[i+1];

                score[i+1]=score[i];

                score[i]=tamp;

            }

       

    }

    ave = (float)sum/10;

    max=score[0];

    min=score[9];

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

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

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

    printf("平均分为:%f\n",ave);

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

    {

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

    }

    

    return 0;

}


正在回答

3 回答

你没有用冒泡排序,可以参考

0 回复 有任何疑惑可以回复我~
#include <stdio.h>int a(){	int score[10]={67,98,75,63,82,79,81,91,66,84};	int i, sum=0;	for(i=0;i<=9;i++)	{	sum+=score[i];	}	printf("总分为\t\t%d\n\n",sum); 	printf("平均分为\t%d\n\n",sum/10);	return 0; } int b(){	int score[10]={67,98,75,63,82,79,81,91,66,84};	int i,max=0,min=100;	for(i=0;i<9;i++)	{		if(max<score[i])		{		max= score[i];		}		if(min>score[i])		{			min=score[i];		}	}	printf("最大值为\t%d\n\n",max);	printf("最小值为\t%d\n\n",min);	return 0; }  int c() { 	int score[10]={67,98,75,63,82,79,81,91,66,84}; 	int i,j,k=0; 	for(j=0;j<9;j++) 	{ 		for(i=0;i<9-j;i++) 		if(score[i]>score[i+1]) 		{ 			k=score[i]; 			score[i]=score[i+1]; 			score[i+1]=k;		}	}	printf("排序为\t\t") ; 	for(i=0;i<10;i++) 	{ 		printf("%d\t",score[i]);	} }int main(){    a();    b();	c();}


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

看一下前面的冒泡排序,排序的时候要嵌套两层,一层是计算排序次数,一层是比较大小。

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

举报

0/150
提交
取消

请问下大佬们,这个排列是哪里不对,为啥出来的结果还是乱序

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