解题思路:

注意事项:

参考代码:

#include<stdio.header>

int m   ()

{

int m,i,j,a[10];

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

{

scanf("%d",&a[i]);/*依次输入数组元素*/

}

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

{

for(j=i+1;j<10;j++)/*依次将后面的元素与第i个比较*/

{

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

{

m=a[i];/*小于第i个就与之交换,依次进行,最后最小的就交换在前面了*/

a[i]=a[j];

a[j]=m;

}

}

}

for(i=0;i<10;i++)/*顺序排好,输出^^*/

{

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

}

return  ;

}


点赞(1)
 

0.0分

10 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 9 条评论

dotcpp0737227 11月前 回复TA
@梧桐 时间复杂度太高了。把里面两层for循环放出来试试
无敌暴龙战神 2年前 回复TA
@梧桐 if(a[i]>a[j+1])
梧桐 2年前 回复TA
#include<stdio.h>
int main()
{
	int a[10];
	int i,j,temp;
	for(i=0;i<10;i++)
	{scanf("%d",&a[i]);}
	  for(i=0;i<9;i++)
	  {
	  	for(j=0;j<10-i;j++)
	  	 if(a[j]>a[j+1])
	  	 {
	  	 	temp=a[j];
	  	 	a[j]=a[j+1];
	  	 	a[j+1]=temp;
		 }
	  }
	for(j=0;j<10;j++)
	printf("%d\n",a[j]);
}

为什么时间会超限了
弗莱 3年前 回复TA
@五仁月饼 挺菜的
小鹏 3年前 回复TA
@蜡笔没有小新 这不就是冒泡法吗
好想进省一 3年前 回复TA
@蜡笔没有小新 这个是真的妙
END 3年前 回复TA
@五仁月饼 每轮多比了一次
蜡笔没有小新 3年前 回复TA
大佬的代码有误哦
#include<stdio.h>
int main()
{
	int i,j,m,a[10];
	for(i=0;i<10;i++)
	scanf("%d",&a[i]);
	for(i=0;i<10;i++)
	for(j=i+1;j<10;j++)
	{
		if(a[i]>a[j])
		{
			m=a[i];
			a[i]=a[j];
			a[j]=m;
		}
	}
	for(i=0;i<10;i++)
	{
		printf("%d\n",a[i]);
	}
	return 0;
}
个人感觉这样更好
五仁月饼 3年前 回复TA
#include<stdio.h>
int main()
{
  int s[10],i,j,t;
  for(i=0;i<10;i++)
  {
	  scanf("%d",&s[i]);
  }
  for(j=0;j<10;j++)
  {
	  for(i=0;i<10;i++)
	  {
		  if(s[i]>s[i+1])
		  {
			  t=s[i];
			  s[i]=s[i+1];
			  s[i+1]=t;
		  }
	  }
  }
  for(i=0;i<10;i++)
  printf("%d\n",s[i]);
  return 0; 
}
我的和你的思路一样,报下面这个错误
运行错误:运行时错误,非法的内存访问,数组越界,指针漂移,调用禁用的系统函数。
有没有大佬帮忙指正一下