|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
自己写了一个冒泡排序的函数:void sort(int a[], int num)
又借用了小甲鱼的函数: void bubble_sort(int array[], int length);
代码内容一样,不过为什么结果不同呢? 搞了半天不知道为什么
- #include<stdio.h>
- #include<stdlib.h>
- void bubble_sort(int array[], int length);
- void sort(int a[], int num);
- void bubble_sort(int array[], int length)
- {
- int i, j, temp;
-
- for (i = 0; i < length - 1; i++)
- {
- for (j = 0; j < length - 1 - i; j++)
- {
- if (array[j] > array[j+1])
- {
- temp = array[j];
- array[j] = array[j + 1];
- array[j+1] = temp;
- }
- }
- }
- }
- void sort(int a[], int num)
- {
- int i , j, temp;
- for(i = 0 ; i < num - 1; i++)
- {
- for(j = 0; j < num -1 -i; j++)
- {
- if(a[j] > a[j+1]);
- {
- temp = a[j];
- a[j] = a[j+1];
- a[j+1] = temp;
- }
- }
- }
- }
- int main(void)
- {
- int *a, num, k = 0, i, con;
- //用户确定比较个数
- printf("请输入即将输入的整数个数:");
- if(scanf("%d",&num) != 1)
- {
- printf("数据类型输入不正确-- 程序终止!");
- exit(EXIT_FAILURE);
- }
- //开辟内存空间
- a = (int *)malloc(num * sizeof(int));
- if(a == NULL)
- {
- printf("内存空间分配失败-- 程序终止!");
- exit(EXIT_FAILURE);
- }
- //将用户输入的数据存储
- printf("输入q退出,数据输入\n");
- do
- {
- printf("正在输入第%d个数据: ",k +1);
- con = scanf("%d",&a[k]);
- k++;
- }while(k < num && con == 1);
- for(i = 0; i < num ;i ++)
- {
- printf("a[%d]: %d\n",i,a[i]);
- }
- //冒泡排序
- sort(a, num);
- printf("************\n");
- for(i = 0; i < num ;i ++)
- {
- printf("%d\n",a[i]);
- }
-
- bubble_sort(a, num);
- printf("************\n");
- for(i = 0; i < num ;i ++)
- {
- printf("%d\n",a[i]);
- }
- printf("当前数据中最大的元素是:%d\n",a[num - 1]);
- free(a);
- return 0;
- }
复制代码
|
-
-
|