黑马程序员技术交流社区

标题: 冒泡排序的函数封装 [打印本页]

作者: 胥鹏飞    时间: 2015-8-15 23:26
标题: 冒泡排序的函数封装


#include <stdio.h>
void initIntArray(int arr[], int length) {
    // 初始化, 函数里和函数外是"同一个数组"
    for (int i = 0; i < length; i++) {
        printf("请输入第 %d 个数字\n", i + 1);
        scanf("%d", &arr[i]);
    }
}


void foreachIntArray(int array[], int length) {
    printf("====================\n");
    for (int i = 0; i < length; i++) {
        printf("%d\n", array[i]);
    }
}


void bubbleSortByIntArray(int array[], int length) {
   
    for (int i = 0; i < length - 1; i++) {
        for (int j = 0; j < length - i - 1; j++) {
            if(array[j] > array[j + 1]) {
                int temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
            }
        }
    }
}





int main(int argc, const char * argv[]) {
    int nums;
    foreachIntArray(nums, 5);

bubbleSortByIntArray(nums, 5);

foreachIntArray(nums, 5);



   
    return 0;


}

























作者: Edware    时间: 2015-8-15 23:40
纯代码,写点思路就更完美了。
作者: ylxkab    时间: 2015-8-15 23:53
写得挺好的
作者: Eil.tea    时间: 2015-8-16 07:02
这也行? foreachIntArray(nums, 5); nums是个int类型,函数void foreachIntArray(int array[], int length) 需要传递一个数组,形参和实参都对不上。
作者: lucky24    时间: 2015-8-16 08:02
没有分析啊
作者: 胥鹏飞    时间: 2015-8-16 13:26
Eil.tea 发表于 2015-8-16 07:02
这也行? foreachIntArray(nums, 5); nums是个int类型,函数void foreachIntArray(int array[], int length ...

这个题我做错了,能给出全解不
作者: 胥鹏飞    时间: 2015-8-16 13:34
lucky24 发表于 2015-8-16 08:02
没有分析啊

给看下,是什么问题
作者: Eil.tea    时间: 2015-8-16 14:19
本帖最后由 Eil.tea 于 2015-8-16 14:31 编辑
胥鹏飞 发表于 2015-8-16 13:26
这个题我做错了,能给出全解不
  1. #include <stdio.h>
  2. void maopaoSort(int num[])
  3. {
  4.     int temp;
  5.     for (int i=0; i<10 ; i++) {
  6.         for (int j=0; j<10-i; j++) {
  7.             if (num[j]>num[j+1]) {
  8.                 temp=num[j];
  9.                 num[j]=num[j+1];
  10.                 num[j+1]=temp;
  11.             }
  12.         }
  13.     }
  14. }

  15. int main(int argc, const char * argv[]) {
  16.     int num[10]={1,2,6,8,9,0,7,4,3,5};
  17.     maopaoSort(num);
  18.     for (int i=0; i<10; i++) {
  19.         printf("%2d",num[i]);
  20.     }
  21.     return 0;
  22. }
复制代码



作者: yushimin763    时间: 2015-8-17 11:24
学习了,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2