第六章数组学习总结

第六周学习了一维数组和二维数组.

什么是数组:数组是存放数据长度固定的容器,并且其数据类型也是一致的。

1.一维数组

(1)创建一个数组

 

int a[10];   //[]内必须是常量

 

(2)数组的初始化

 

int a[3]={0,1 2};
char a[3]={'a',98,'c'};       //因为是字符型,所以98就是b

 

(3)数组的便利

#include<stdio.h>
int main()
{
    int a[10] = {0};
    for (int i = 0; i < 10; i++)     //下标从0开始
    {
        a[i] = i;
    }
    return 0; 
}

2.二维数组

(1)创建和初始化

int a[2][2]={0};

(2)便利

#include<stdio.h>

int main()
{
    int a[3][3] = { 0 };
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
}

3.数组的使用

这周我们学习了用数组解决问题。

列如:运用数组对一串无序的数字进行排序。

(1)选择法排序

思路:1.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
2.再从剩余未排序元素中继续寻找最小(大)元素,然后放到未排序序列的起始位置。
3.重复第二步,直到所有元素均排序完毕。

代码实现:

#include<stdio.h>
int min( int a[], int len);
int main()
{
    int n,a[10],minid;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    for(int i=n-1;i>0;i--){
        minid=min(a,i+1);
        int t=a[minid];
        a[minid]=a[i];
        a[i]=t;
    }
    for(int i=0;i<n;i++){
        if(i!=n-1)
            printf("%d ",a[i]);
        else
            printf("%d",a[i]);
    }
    return 0;
}
int min( int a[], int len)
{
    int minid=0;
    for(int i=0;i<len;i++){
        if(a[i]<a[minid])
            minid=i;
    }
    return minid;
}

 (2)冒泡排序

思路:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.每趟从第一对相邻元素开始,对每一对相邻元素作同样的工作,直到最后一对。
3.针对所有的元素重复以上的步骤,除了已排序过的元素(每趟排序后的最后一个元素),直到没有任何一对数字需要比较。

代码实现:

#include<stdio.h>
int main()
{
    int a[10],N;
    int t, i, j;
    scanf("%d",&N);
    for( i = 0; i < N; i++){
        scanf("%d",&a[i]);
    }
    for (i = 0; i < N-1; i++)    //进行N-1次比较
        for (j = 0; j < N - i - 1; j++)   //在每次中进行10-i-1次比较
            if (a[j] > a[j + 1])      //按升序排序,降序用<
            {
                t = a[j + 1];      //交换相邻的两个元素
                a[j + 1] = a[j];
                a[j] = t;
            }
//输出排序后的结果
    for (i = 0; i < N; i++)
        printf("%d ", a[i]);
    return 0; 
}

 

posted @ 2021-10-31 20:14  陈劲宏  阅读(92)  评论(0)    收藏  举报