当前位置: 首页 > news >正文

【00005】

二、C语言

2.4数组

1.数组

分为一维数组,二维数组,多维数组

(1)一维数组

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

数组名:与变量名要求一致
元素个数必须为常量,不能是变量或变量表达式

1.定义

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

2.性质

单一性
连续性
有序性

(2)元素访问

数组名[元素下标]

元素下标为:0 -- 元素个数-1 ,避免访问越界
元素下标可以为常量、变量、表达式

(3)数组的存储

int a[n];

数组所占空间大小 == 数据类型所占空间大小 * 元素个数
获得数组元素个数的方法

sizeof(a) / sizeof(a[0])

(4)数组初始化

初始化 != 赋值
不能对数组整体做操作,只能依次对所有元素操作

1.全部初始化

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

2.部分初始化

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

3.默认初始化

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

(5)数组常见算法

1.找最大值

#include <stdio.h>
int main(void)
{
int a[5] = {0};
int len = sizeof(a) / sizeof(a[0]);
int i = 0;
int max = 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 = a[i];
}
}
printf("max = %d\n", max);
return 0;
}

2.找最小值的下标位置

#include <stdio.h>
int main(void)
{

int a[5] = {0};
int len = sizeof(a) / sizeof(a[0]);
int i = 0;
int minno = 0;
for (i = 0; i < len; i++)
{
scanf("%d", &a[i]);
}
minno = 0;
for (i = 1; i < len; i++)
{
if (a[i] > a[minno])
{
minno = i;
}
}
printf("min = %d, no = %d\n", a[minno], minno);
return 0;

}

3.数组元素的倒置

#include <stdio.h>
int main(void)
{
int a[5] = {0};
int len = sizeof(a) / sizeof(a[0]);
int i = 0;
int tmp = 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];
}
for (i = 0; i < len; i++)
{
printf("a[%d] = %d\n", i, a[i]);
}
return 0;
}

4.数组的排序
1.冒泡排序

#include <stdio.h>
int main(void)
{
int i = 0;
int j = 0;
int a[5] = {0};
int len = sizeof(a) / sizeof(a[0]);
int tmp = 0;
for (i = 0; i < len; i++)
{
scanf("%d", &a[i]);
}
for (j = 0; j < len-1; j++)
{
for (i = 0; i < len-1-j; i++)
{
if (a[i] > a[i+1])
{
tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
}
}
}
for (i = 0; i < len; i++)
{
printf("a[%d] = %d\n", i, a[i]);
}
return 0;

}

2.选择排序

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

for (j = 0; j < len-1; j++)
{
min = j;
for (i = j+1; i < len; i++)
{
if (a[i] < a[min])
{
min = i;
}
}
if (min != j)
{
tmp = a[j];
a[j] = a[min];
a[min] = tmp;
}
}
for (i = 0; i < len; i++)
{
printf("a[%d] = %d\n", i, a[i]);
}
return 0;

}

http://www.jsqmd.com/news/1278424/

相关文章:

  • Go语言构建3D游戏世界:从引擎选型到自由探索实现
  • C++多态实战:从OJ题看虚函数与抽象类的核心应用
  • 2026实力之选:车间地面地坪漆专业品牌与公司 - 卓企推荐
  • DIY智能LED串珠挂帘:从WS2812B灯带到ESP8266网页控制全流程
  • 信息学奥赛入门:从A+B问题看编程思维与竞赛核心
  • 2026年工程涂料专业生产厂家:沈阳天利实业集团有限公司——建筑防腐/耐候防水环保工程涂料深度解析 - 卓企推荐
  • ComfyUI LTX2.3整合包:本地AI视频生成与漫剧制作完整指南
  • 掌控板与扩展板驱动电机舵机:从PID控制到智能小车实战
  • 2026保姆级教程:证件照换衣服详细方法,手机电脑免费工具+PS完整步骤 - 爱上科技热点
  • Unity小型项目高效开发:QFramework核心模块实战指南
  • Python规则引擎实战:构建可自定义的随机点名与智能分组工具
  • SpringBoot+Vue 高校心理教育辅导设计与实现平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • 5个技巧快速掌握Genesis World机器人仿真平台:从零到精通的完整指南
  • 天门市防水补漏_2026江汉平原棉乡漏水维修市场行情与五大正规团队横评 - 雨婺虹房屋维修
  • 基于CCS811与Arduino的趣味空气质量监测项目实践
  • 2026 年现阶段,垦利销量好的小区三角折弯防护网直销厂家哪家强,你家楼下装的那片“隐形屏障”,居然还有这么多讲究? - 实业推荐官【官方】
  • Flask+Vue构建物资管理系统:实时追踪与智能分配
  • Python编程核心要点与实战技巧解析
  • SpringBoot在口腔诊所管理系统中的实践与优化
  • Python颜色识别实战:基于行空板与TCS34725传感器的拾色游戏开发
  • 2026保姆级教程:超大Word文档极致压缩技巧,手把手把Word文件压到最小 - 爱上科技热点
  • 2026年7月TA2钛板/TA1钛板公司精选推荐_‌无锡兢业不锈钢有限公司‌ - 品牌宣传支持者
  • SpringBoot+Vue构建高并发医疗挂号系统实战
  • Arduino蜂鸣器驱动全解析:从DFR0100基础报警到智能控制实战
  • 终极指南:如何用Milo v1.5打造你的低成本桌面CNC铣床
  • CrowdReply MCP:基于MCP协议的AI生成内容SEO优化实践指南
  • 2026年7月潼侨搬迁/重型机床搬迁服务公司选哪家_惠州市粤顺发搬运服务有限公司 - 行业平台推荐
  • 如何彻底净化百度贴吧:TiebaTS模块的完整实践指南
  • 基于Arduino与AI的醒狮动作识别与辅助训练系统实践
  • 2026保姆级教程:透明底图片怎么制作,手机电脑在线抠透明背景全方法 - 爱上科技热点