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

2024-04-23 13:36

本文主要是介绍嵌入式学习——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;
}

        

这篇关于嵌入式学习——C语言基础——day6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/928937

相关文章

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中