本文主要是介绍邻居好说话:冒泡排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <stdio.h> int main() { int a[100],i,j,t,n; scanf ( "%d" ,&n); //输入一个数n,表示接下来有n个数 for (i=1;i<=n;i++) //循环读入n个数到数组a中 scanf ( "%d" ,&a[i]); //冒泡排序的核心部分 for (i=1;i<=n-1;i++) //n个数排序,只用进行n-1趟 { for (j=1;j<=n-i;j++) //从第1位开始比较直到最后一个尚未归位的数,想一想为什么到n-i就可以了。 { if (a[j]<a[j+1]) //比较大小并交换 { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for (i=1;i<=n;i++) //输出结果 printf ( "%d " ,a[i]); getchar (); getchar (); return 0; } |
1081005022156110009990
01681522501009991000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <stdio.h> struct student { char name[21]; char score; }; //这里创建了一个结构体用来存储姓名和分数 int main() { struct student a[100],t; int i,j,n; scanf ( "%d" ,&n); //输入一个数n for (i=1;i<=n;i++) //循环读入n个人名和分数 scanf ( "%s %d" ,a[i].name,&a[i].score); //按分数从高到低进行排序 for (i=1;i<=n-1;i++) { for (j=1;j<=n-i;j++) { if (a[j].score<a[j+1].score) //对分数进行比较 { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for (i=1;i<=n;i++) //输出人名 printf ( "%s\n" ,a[i].name); getchar (); getchar (); return 0; } |
这篇关于邻居好说话:冒泡排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!