嵌入式学习——C语言基础——day6

1. 一维数组的定义

        相同类型有限数据的一个集合

        数据类型 数组名[元素个数];

        注意:

        1. 数组中的元素必须为同一类型

        2. 元素个数有限个

        3. 数组定义时,元素个数必须为常量或者常量表达式,不能为变量

2. 数组元素的访问

        数组名[元素下标]

        元素下标可以为常量、变量、或常量变量表达式

3. 数组元素的初始化

3.1 全部初始化

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

3.2 局部初始化

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

        没有给定初值的元素统一给0值

3.3 默认初始化

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

        注意:初始化 不等同于 赋值

4. 数组的储存

4.1 连续性

        数组存储空间连续

4.2 有序性

        数组存放顺序有序

        注意:计算元素个数方法   sizeof(a) / sizeof(a[0]);

5. 数组的常见操作

5.1 获得最大值

#include <stdio.h>

int main(void)
{
    int a[5] = {0};
    int i = 0;
    int min = 0;
    int len = sizeof(a) / sizeof(a[0]);

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

    max = a[0];
    for (i = 1; i < len; i++)
    {
        if (a[i] > max)
        {
            min = a[i];
        }
    }

    printf("max = %d\n", max);

    return 0;
}

5.2 获得最小值

#include <stdio.h>

int main(void)
{
    int a[5] = {0};
    int i = 0;
    int min = 0;
    int len = sizeof(a) / sizeof(a[0]);

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

    min = a[0];
    for (i = 1; i < len; i++)
    {
        if (a[i] < min)
        {
            min = a[i];
        }
    }

    printf("min = %d\n", min);

    return 0;
}

5.3 获得最大值下标

#include <stdio.h>

int main(void)
{
    int a[5] = {0};
    int i = 0;
    int max = 0;
    int len = sizeof(a) / sizeof(a[0]);

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

    max = a[0];
    for (i = 1; i < len; i++)
    {
        if (a[i] > max)
        {
            max = i;
        }
    }

    printf("max = %d\n", max);

    return 0;
}

5.4 获得最小值下标

#include <stdio.h>

int main(void)
{
    int a[5] = {0};
    int i = 0;
    int min = 0;
    int len = sizeof(a) / sizeof(a[0]);

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

    min = a[0];
    for (i = 1; i < len; i++)
    {
        if (a[i] < min)
        {
            min = i;
        }
    }

    printf("min = %d\n", min);

    return 0;
}

5.5 数组元素倒置

#include <stdio.h>

int main(void)
{
    int a[5] = {0};
    int i = 0;
    int tmp = 0;
    int len = sizeof(a) / sizeof(a[0]);

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

    for (i = 0; i < len/2; i++)
    {
        tmp = a[i];
        a[i] = a[len-1-i];
        a[len-1-i] = tmp;
    }

    for (i = 0; i < len; i++)
    {
        printf("%d ", a[i]);
    }
    putchar('\n');

    return 0;
}

5.6 冒泡排序法

#include <stdio.h>

int main(void)
{
    int a[5] = {0};
    int i = 0;
    int j = 0;
    int len = sizeof(a) / sizeof(a[0]);
    int tmp = 0;
    
    for (i = 0; i < len; i++)
    {
        scanf("%d", &a[i]);
    }

    for (i = 0; i < len-1; i++)              //min -> max
    {
        for (j = 0; j < len-1-i; j++)     
        {
            if (a[j] > a[j+1])
            {
                tmp = a[j];
                a[j] = a[j+1];
                a[j+1] = tmp;
            }
        }
    }

    for (i = 0; i < len; i++)
    {
        printf("%d ", a[i]);
    }
    putchar('\n');

    return 0;
}

5.7 选择排序法

#include <stdio.h>

int main(void)
{
    int a[5] = {0};
    int i = 0;
    int j = 0;
    int len = sizeof(a) / sizeof(a[0]);
    int tmp = 0;
    int min = 0;
    
    for (i = 0; i < len; i++)
    {
        scanf("%d", &a[i]);
    }

    for (i = 0; i < len-1; i++)              //min -> max
    {
        min = i;
        for (j = i+1; j < len; j++)     
        {
            if (a[j] < a[min])
            {
                min = j;
            }
        }

        if (min != i)
        {
            tmp = a[min];
            a[min] = a[i];
            a[i] = tmp;
        }
    }

    for (i = 0; i < len; i++)
    {
        printf("%d ", a[i]);
    }
    putchar('\n');

    return 0;
}

        

相关推荐

  1. 嵌入学习——C语言基础——day6

    2024-04-23 13:44:03       35 阅读
  2. 嵌入学习——C语言基础——day4

    2024-04-23 13:44:03       35 阅读
  3. 嵌入学习——C语言基础——day10

    2024-04-23 13:44:03       35 阅读
  4. 嵌入学习——C语言基础——day12

    2024-04-23 13:44:03       37 阅读
  5. 嵌入学习——C语言基础——day13

    2024-04-23 13:44:03       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 13:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 13:44:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 13:44:03       82 阅读
  4. Python语言-面向对象

    2024-04-23 13:44:03       91 阅读

热门阅读

  1. 2024.4.22每日一题

    2024-04-23 13:44:03       35 阅读
  2. RedisSearch:一个基于Redis的搜索引擎模块

    2024-04-23 13:44:03       188 阅读
  3. VScode 里面使用 python 去直接调用 CUDA

    2024-04-23 13:44:03       36 阅读
  4. 从零开始精通RTSP之深入理解RTCP协议

    2024-04-23 13:44:03       43 阅读
  5. 基于spring boot开发的快递管理系统开题报告

    2024-04-23 13:44:03       32 阅读
  6. 使用selenium调用firefox提示Profile Missing的问题解决

    2024-04-23 13:44:03       33 阅读
  7. 【前端】vue.config.js打包时不编译

    2024-04-23 13:44:03       34 阅读
  8. vue中如何控制一个全局接口的调用频率

    2024-04-23 13:44:03       37 阅读
  9. ui_admin_vue3启动

    2024-04-23 13:44:03       31 阅读
  10. 图片 组件 vue2+element

    2024-04-23 13:44:03       35 阅读
  11. 谈谈 vue 生命周期

    2024-04-23 13:44:03       35 阅读
  12. python输入输出特殊处理

    2024-04-23 13:44:03       40 阅读
  13. 单链表(详解)

    2024-04-23 13:44:03       29 阅读