8.数组-一维数组【郝斌C语言入门学习】

1.为什么需要数组

为了解决大量同类型数据的存储和使用问题

为了模拟现实世界

 

# include <stdio.h>
int main(void)
{
    int i;
    int a[5] = { 1, 2, 3, 4, 5 };
    //a数组的元素,5表示数组元素的个数,并且五个元素分别用a[0], a[1], a[2], a[3], a[4]
    for (i = 0; i < 5; ++i)
        printf("%d\t", a[i]);
    //printf("%d\n", a[100]);// - 698033904
    return 0;
}
/*
    在vc++6.0中的输出结果:1       2       3       4       5 
*/

 

2.数组的分类

(1)一维数组

1)怎样定义一维数组:

  为n个变量连续分配存储空间

  所有的变量数据类型必须相同

  所有变量所占的字节大小必须相等

2)例子: int a[5];

  一维数组名不代表数组中所有的元素,一维数组名代表数组第一个元素的地址。

3)A.初始化:

  完全初始化:int a[5] = {1, 2, 3, 4, 5};

  不完全初始化,未被初始化的元素自动清零:int a[5] = {1, 2, 3};

  不初始化,所有元素是垃圾值:int a[5];

  清零:int a[5] = {0};

  错误写法:int a[5];

       a[5] = {1, 2, 3, 4, 5};//错误

            只有在定义数组的同时才能可以整体赋值,其他情况下整体赋值都是错误的。

        int a[5] = {1, 2, 3, 4, 5};

        a[5] = 100;//错误,因为没有a[5]这个元素,最大只有a[4]

       int a[5] = {1, 2, 3, 4, 5};

       int b[5];

       如果要把a数组中的值全部复制给b数组

       错误的写法: b = a; //错误,a代表数组a[0]的地址,b代表数组b[0]的地址

       正确的写法: for (i=0; i<5; ++i)

                b[i] = a[i];

  B.赋值  

# include <stdio.h>
int main(void)
{
    int i;
    int a[5];
    //向数组赋值
    printf("请输入:\n");
    for (i=0; i<5; ++i)
    {
        scanf("%d", &a[i]);
    }
    //按序打印数组
    printf("打印数组:\n");
    for (i=0; i<5; ++i)
    {
        printf("%d\n", a[i]);
    }
    return 0;
}

 

  C.排序

  D. 求最大值和最小值

  E.倒置

# include <stdio.h>
int main(void)
{
    int a[7] = {1, 2, 3, 4, 5, 6, 7};
    int i, j;
    int t;
    i = 0;
    j = 6;
    while (i <j)
    {
        t = a[i];
        a[i] = a[j];
        a[j] = t;
        ++i;
        --j;
    }
    //输出数组
    for (i=0; i<7; ++i)
    {
        printf("%d\n", a[i]);
    }
    return 0;
}

 

  F.查找

  G.插入

  F.删除

 

posted @ 2024-08-08 16:14  java帝国  阅读(4)  评论(0)    收藏  举报