0
点赞
收藏
分享

微信扫一扫

函数与数组-冒泡排序

==标记==
//下面记录一下重要知识点

  1. 库函数:字符串拷贝strcpy(指针指向目的地的数组,源头),strlen()等处
    理字符串长度的函数,需要调用#include<string.h>的头文件
    strlen()函数:求字符串长度-“123”打印的结果是3不包含\0
    即strlen函数求得是\0之间的字符个数
    2.void memset:内存设置-(void s, int ch, size_t n)
    函数解释:将s中当前位置后面的n个字节,用 ch 替换并返回s
    3.swap(a,b)和swap(&a,&b):传值调用和传址调用(真正实现函数内部和外
    部交换)
    4.printf("%d\n",printf("%d",printf("%d",43)):printf函数的返回值是元素
    的个数,此语句打印的结果是4321
    5.函数的声明、调用和定义要理解,函数的递归、栈溢出
    6.数组的几个易错点:printf("%d\n",sizeof(arr));//打印的是arr中的元素数
    printf("%d\n",sizeof(arr[0])); //打印的是第一个元素
    举例:int arr1[] = "abc";
    int arr2[] = {'a','b','c'};
    printf("%d\n",strlen(arr1));//结果是3,arr2是随机值
    printf("%d\n",sizeof(arr1));//结果是4,arr2是3
    关于数组的取地址:
    printf("%p\n",arr);
    printf("%p\n",*arr);
    printf("%p\n",arr[0]); //这三种都是一样的
    printf("%p\n",&arr);//取的是数组的地址
    printf("%p\n",&arr+1);//会比数组地址大一个轮回
    ```//冒泡排序
    #include<stdio.h>
    void bubble_sort(int arr[],int sz)
    {
    int a = 0;
    int j = 0;
    for(a=0;a<sz;a++)
    {
    int flag = 1;
    for(j=0;j<sz-a-1;j++)
    {
    int tmp = 0;
    if(arr[j]>arr[j+1])
    tmp = arr[j];
    arr[j] = arr[j+1];
    arr[j+1] = tmp;
    flag = 0;
    }
    if(flag == 1)
    {
    break;
    }
    }
    }
    int main()
    {
    int arr[] = {9,8,7,6,5,4,3,2,1};
    int i = 0;
    int sz = sizeof(arr)/sizeof(arr[0]);
    bubble_sort(arr,sz);
    for(i=0;i<sz;i++)
    {
    printf("%d ",arr[i]);
    }
    return 0;
    }
    
    //总结一下:别忘记定义tmp,不要再运算中定义冒泡函数的定义bubble_sort()
举报

相关推荐

0 条评论