嵌入式学习——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语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

从基础到高阶详解Python多态实战应用指南

《从基础到高阶详解Python多态实战应用指南》这篇文章主要从基础到高阶为大家详细介绍Python中多态的相关应用与技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、多态的本质:python的“鸭子类型”哲学二、多态的三大实战场景场景1:数据处理管道——统一处理不同数据格式

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

Python 函数详解:从基础语法到高级使用技巧

《Python函数详解:从基础语法到高级使用技巧》本文基于实例代码,全面讲解Python函数的定义、参数传递、变量作用域及类型标注等知识点,帮助初学者快速掌握函数的使用技巧,感兴趣的朋友跟随小编一起... 目录一、函数的基本概念与作用二、函数的定义与调用1. 无参函数2. 带参函数3. 带返回值的函数4.

Go语言使用sync.Mutex实现资源加锁

《Go语言使用sync.Mutex实现资源加锁》数据共享是一把双刃剑,Go语言为我们提供了sync.Mutex,一种最基础也是最常用的加锁方式,用于保证在任意时刻只有一个goroutine能访问共享... 目录一、什么是 Mutex二、为什么需要加锁三、实战案例:并发安全的计数器1. 未加锁示例(存在竞态)

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五