zoukankan      html  css  js  c++  java
  • # C语言假期学习笔记——6

    C语言假期学习笔记——6

    数组

    • 主要学习了一位数组和二维数组。
    • 数组是一组具有相同类型的变量的集合。C语言程序通过元素的下标来访问数组中的元素。(下标从0开始)
    一位数组
    • 类型 数组名[元素个数]

    二维数组

    • 类型 数组名[第一维长度][第二维长度]
    • 第一维长度在某些时刻可以省略(当形参被声明为二维数组时),第二维长度永远不可以省略
    • 存储的元素总量=第一维长度*第二维长度

    向函数传递数组

    • 先对数组的容量进行限制例如下面限定数组最多存储40个元素。
    #define N 40
    
    void PassArray(int arr[])
    {
        int i=-1;
        do
        {
            i++;
            scanf("%d",&arr[i]);
        }while(条件);
    }
    void PassArray(int arr[],int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            scanf("%d",&arr[i]);
        }
    }
    int PassArray(int arr[])
    {
        int i=-1;
        do
        {
            i++;
            scanf("%d",&arr[i]);
        }while(条件);
        return i;
    }
    

    在数组内进行查找

    int FindArr(int arr[],int n,int score)
    {
        int i;
        for(i=0;i<n;i++)
        {
            if(score==arr[i]) 
            {
                return i;
                break;
            }
        }
        return -1;
    }
    
    • 折半查找
        int binary_research(int arr[],int left,int right,int element)  
        {  
            while(left<=right)  
            {     
                int mid = (left+right)/2;  
                if(arr[mid]>element)  
                {  
                    right = mid - 1;  
                }  
                else if(arr[mid]<element)  
                {  
                    left = mid + 1;  
                }  
                else   
                {  
                    return mid;  
                }  
            }  
            return -1;  
        }  
    

    排序

    • 主要是冒泡排序;
     int i,j;  
        for(j=0;j<COUNT-1;j++){  
            for(i=0;i<COUNT-1-j;i++){  
      
                    if (arr[i]>arr[i+1]){  
                        int tmp=arr[i]; arr[i]=arr[i+1];arr[i+1]=tmp;  
                    }  
      
            }  
            for(i=0;i<COUNT;i++){  
                printf("%d,",arr[i]);  
      
      
            }  
    

    易错点

    -在这章的代码编写中总是有一些小问题出现

    1. 调用函数时max=FindMax(score[],n);编译错误
    2. max=FindMax(int score[],int n);编译错误;
    3. int ReadScore(int score[][],int num[]);编译错误。省略了长度声明
  • 相关阅读:
    cb快捷键
    N的阶乘的长度 V2(斯特林近似)
    最大子序列和(Max Sum ,Super Jumping! Jumping! Jumping! )
    关于莫比乌斯和莫比乌斯反演
    最少拦截系统
    set用法详解
    几种数学公式(环排列 母函数 唯一分解定理 卡特兰数 默慈金数 贝尔数 那罗延数)
    最小堆算法
    并查集算法
    dijkstra算法演示
  • 原文地址:https://www.cnblogs.com/hpl20155329/p/7251500.html
Copyright © 2011-2022 走看看