- #include <stdio.h>
- // 定义一个主函数,作为程序的入口
- int main()
- {
- // 定义两个变量用于for循环条件变量
- int i,j;
-
- // 定义四个变量用来存放abcd
- int a = 10;
- int b = 15;
- int c = 2;
- int d = 9;
-
- // 定义一个数组x用来存放abcd
- int x[4] = {a,b,c,d};
-
- // 定义temp用于冒泡排序交换变量值
- int temp;
-
- // 冒泡排序 将a,b,c,d降序排序,i表示排序的趟数,j表示每趟排序的比较次数
- for (i = 0; i<3; i++)
- {
- for(j = 0;j<3-i;j++)
- {
- if (x[j] < x[j+1])
- {
- // 当前一个元素小于后一个元素时,交换它们的位置
- temp = x[j];
- x[j] = x[j+1];
- x[j+1] = temp;
- }
- }
- }
-
- // 定义一个数组y用来存放abcd标志
- char y[4];
-
- // 将数组x与数组y的变量和标志一一对应
- for (i = 0; i<4; i++)
- {
- // 确定排序后a的位置
- if(x[i] == a && y[0] != 'a' && y[1] != 'a' && y[2] != 'a' && y[3] != 'a')
- {
- y[i] = 'a';
- }
- // 确定排序后b的位置
- else if(x[i] == b && y[0] != 'b' && y[1] != 'b' && y[2] != 'b' && y[3] != 'b')
- {
- y[i] = 'b';
- }
- // 确定排序后c的位置
- else if(x[i] == c && y[0] != 'c' && y[1] != 'c' && y[2] != 'c' && y[3] != 'c')
- {
- y[i] = 'c';
- }
- // 确定排序后d的位置
- else
- {
- y[i] = 'd';
- }
- }
-
- // 降序打印输出每个字母出现的次数
- for (i = 0; i<4; i++)
- printf("%c=%d\n",y[i],x[i]);
-
- return 0;
- }
复制代码
你看下,我做的是降序排序abcd的值,升序排序你对比着写,只要理解了冒泡排序过程,写代码并不难。 |