参考:
#include<stdio.h> int main() { int i,j,k; printf("请输入三个数字:"); scanf("%d%d%d",&i,&j,&k); if(i>j) { i^=j; j^=i; i^=j; } if(i>k) { i^=k; k^=i; i^=k; } if(j>k) { j^=k; k^=j; j^=k; } printf("%d %d %d\n",i,j,k); }
参考方法:
#include<stdio.h> int main(){ int a[4]; void InsSort(int a[],int n); printf("Please enter the num:"); scanf("%d%d%d",a+1,a+2,a+3); InsSort(a,4); printf("%d,%d,%d",*(a+1),*(a+2),*(a+3)); } //直接插入排序,类似打扑克发牌整理扑克,每加入一个数据,就整理有序一次, //依次比较后移 //数据放置在a[1]之后,a[0]放置标志位,在每趟循环中,也起到防止下标越界作用 void InsSort(int a[],int n){ int i,j; //第一趟从第二个数字开始,认为第一个数字有序 for(i=2;i<=n;i++){ //将待插入数据放入a[0] a[0]=a[i]; j=i; //a[0]和前一项比较,前一项较大则前一项后移,覆盖后一项…… while(a[j-1]>a[0]){ a[j]=a[j-1]; //前一项已经后移的前提下,a[0]和前一项的前一项比较 j--; } a[j]=a[0]; } }
#include <stdio.h> int main(int argc, char *argv[]) { int a,b,c,p,q,r,s,t; printf("请输入三个数字:"); scanf("%d%d%d",&a,&b,&c); p=(a<b)?a:b; q=(a>b)?a:b; r=(q<c)?q:c; s=(q>c)?q:c;//max t=(p<c)?p:c;//min printf("%d %d %d",t,r,s); return 0; }
利用define宏定义交换数据
#include <stdio.h> #define swap(a,b) {a=a+b;b=a-b;a=a-b;} int main() { int x,y,z; printf("请输入三个数字:"); scanf("%d %d %d",&x,&y,&z); if(x>y) { swap(x,y); } if(x>z) { swap(x,z); } if(y>z) { swap(y,z); } printf("从小到大排序:%d %d %d\n",x,y,z); return 0; }
#include<stdio.h> #define N 3 // N的值可更改,实现N个数的排序 int main() { int i,j,k,temp; int shuzu[N]; for(i=0;i<N;i++) //选择法排序 { printf("input the %d number:",i+1); scanf("%d",&shuzu[i]); } for (i=0;i<N-1;i++) { k=i; for(j=i+1;j<N;j++) { if(shuzu[j]<shuzu[k]) //实现数组从小到大排序 k=j; } if(k!=i) { temp=shuzu[k]; shuzu[k]=shuzu[i]; shuzu[i]=temp; } } for(i=0;i<N;i++) printf("%d ",shuzu[i]); }
感谢您的支持,我会继续努力的!
支付宝扫一扫,即可进行扫码打赏哦
1660c-exercise-example5
参考:
1659c-exercise-example5
参考方法:
1658c-exercise-example5
参考方法:
1657c-exercise-example5
利用define宏定义交换数据
1656c-exercise-example5
参考方法: