
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; } |