# 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[]);编译错误。省略了长度声明
原文地址:https://www.cnblogs.com/hpl20155329/p/7251500.html