原题链接:[编程入门]三个数字的排序
解题思路以及注意事项:
虽然本题有很多种解法,但小方发现这题用冒泡法更能有逼格,所以建议大家熟练运用这种方法。
一般用循环来输出数组里的内容,除了字符串可以不用循环来输出。
冒泡法就是将数存在数组里面像冒泡一样相互比较。
#include<stdio.h>
void list(int a[],int n);//简易冒泡法
int main()
{
int a[3],i;
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
list(a,3);
for(i=0;i<3;i++)
{
printf("%d ",a[i]);
}
return 0;
}
void list(int a[],int n)
{
int i,j,trans;
for(i=0;i<n;i++) //冒泡法,我建议大家可以死记,理解后记起来跟容易
for(j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
trans=a[j];
a[j]=a[j+1];
a[j+1]=trans;
}
}
}看看大家还有没有什么不懂的,请在下方评论区留言,小方会在看到的第一时间替你解疑
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
函数部分这样写更容易理解,以第一个循环变量为基准,用第二个循环变量遍历基准后的每个元素,有比基准小的元素会不断与基准交换值,直到找到最小的元素会成为最终代替基准那个元素。 #include<stdio.h> void list(int a[],int n); int main() { int a[6],i; for(i=0;i<6;i++) { scanf("%d",&a[i]); } list(a,6); for(i=0;i<6;i++) { printf("%d ",a[i]); } return 0; } void list(int a[],int n) { int i,j,trans; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(a[j]<a[i]) { trans=a[i]; a[i]=a[j]; a[j]=trans; } } } }喜欢C++的大佬可以参考下哈。 #include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { int a; vector<int> vec; for(int i=0;i<3; i++) { cin>>a; vec.push_back(a); } sort(vec.begin(),vec.end()); for(int i=0; i<3; i++) { cout<<vec[i]<<" "; } return 0; }为什么这个是错的????? #include <stdio.h> int main() { int a[3]; int i,n; for(i=0;i<3;i++) scanf("%d",&a[i]); for(i=0;i<2;i++) { if(a[i]>a[i+1]) { n=a[i]; a[i]=a[i+1]; a[i+1]=n; } } for(i=0;i<3;i++) printf("%d ",a[i]); return 0; }#include <stdio.h> int main() { int a[3],i,j,c; for(i=0;i<3;i++) { scanf("%d",&a[i]); } for(j=0;j<3;j++) { for(i=0;i<3;i++) { if(a[i]>a[i+1]) { c=a[i]; a[i]=a[i+1]; a[i+1]=c; } } } for(i=0;i<3;i++) { printf("%d ",a[i]); } return 0; }#include<stdio.h> int main() { int a[3],i,j,t; for(i=0;i<3;i++) { scanf("%d",&a[i]); } for(i=0;i<3;i++) { for(j=0;j<3-i;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<3;i++) { printf("%d ",a[i]); } printf("\n"); return 0; } //我这个哪里错了啊?