snrg.net
当前位置:首页 >> C语言如何实现多级排序? >>

C语言如何实现多级排序?

关于排序的方法有很多种,例如:冒泡排序、选择排序、插入排序、归并排序等等.下面以冒牌排序来实现任意几个数的排序:#include <stdio.h>//冒泡排序,由低到高 int main() { int a[10] = {2,5,9,15,1,6,4,8,26,33}; int temp; int i, j; for (i = 1; i < 10

#include <stdio.h>#include <fstream.h>#include <map>#include "time.h" void main() { int i,j,k,temp,a[5]; printf("请输入数组:\n"); for( i=0;i<5;i++) { scanf("%d",&a[i]); } for( i=0;i<5;i++) { k=i; for(j=i;j<5;j++) if(a[k]>a[j]) { temp=a[j]; a[j]=a[k]; a[k]=temp; } } for( i=0;i<5;i++) printf("%d ",a[i]); printf("\n"); }

如果是C语言的话只能手写堆排序、归并排序或者快速排序等等 如果是用C++的话可以看下面:10W量级直接考虑使用STL的sort函数,用法自行百度或者参见http://www.cplusplus.com/reference/algorithm/sort/ sort函数默认是升序排序,要降序排

c语言中排序法有选择法和冒泡法是最常见的. 1冒泡法对10个数排序 #include<stdio.h> void main () { int a[10]; int i,j,t; printf("please input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) //进行9次循环,实

#include<stdio.h> int main() { int a[10],i,j,t,k; printf("请以次输入10个学生的成绩:"); for(i=0;i<10;i++)scanf("%d",&a[i]); for(i=0;i<9;i++) { k=i; for(j=i;j<10;j++) if(a[j]>a[k])k=j; if(i!=k) { t=a[i]; a[i]=a[k]; a[k]=t; } } printf("由高到低排序输出成绩:\n"); for(i=0;i<10;i++) printf("%d\n",a[i]); return 0; }

#include<stdio.h> int main() { int i,j,m; double temp; double a[3]; for(m=0;m<3;m++) //输入三个数 { scanf("%lf",&a[m]); } for(i=0;i<3;i++) //完成排序 { for(j=i;j<3;j++) { if(a[j]<a[i]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } printf("%lf\t",a[i]);//打印结果 } printf("\n"); return 0; }

三个if是并列关系,依次执行下来.第一个if用来比较a和b的大小,如果a>b则交换a,b的值,保证a比b小.第二个if用来比较b和c的大小,如果b>c则交换b,c的值,保证b比c小.由于原来可能a比c大,第二次的比较与交换后,需要再次比较a和b.这个程序的意思就是把大的数依次往后挪.如果是4个数的话,那么if的顺序就应该是 if(a>b) if(b>c) if(c>d) if(a>b) if(b>c) if(a>b)

#include<stdio.h> void sort(int a[]) {int i,j,t; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;} } int main() {int i,j,a[6][5]; for(i=0;i<6;i++) { for(j=0;j<5;j++) scanf("%d",&a[i][j]); sort(a[i]); } for(i=0;i<6;i++) {printf("Case %d:",i); for(j=0;j<5;j+

#include<stdio.h> #define N 10 void main() { int a[N]={1,2,3,4,5,6,7,8,9,10},i,t; for(i=0;i<N/2;i++) { t=a[i]; a[i]=a[N-i-1]; a[N-i-1]=t; } for(i=0;i<N;i++) printf("%d ",a[i]); printf("\n"); }

#/*由小到大排序*/#include <stdio.h> main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) {temp=a;a=b;b=temp;} if(a>c) {temp=a;a=c;c=temp;} if(b>c) {temp=b;b=c;c=temp;} printf("%d %d %d",a,b,c); } Q:249195807

网站首页 | 网站地图
All rights reserved Powered by www.snrg.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com