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

《C语言学习:数组》10

写在前面本笔记为个人学习各平台C语言系列课程所作仅供交流学习不得作他用。1. 数组定义int NUM[100];上面的代码表示定义了一个装int类型的数组NUM这个数组有100个元素索引是0~99。如果确定数组中的所有元素也可以如下定义集成初始化int NUM1[]{1,2,3,4,5,6,7,8,9};C99之前数组大小必须是一个确定的数字不能是运行中的变量。一般考试也这么认为注意定义了数组需要给数组初始化没有特殊要求可以直接接上{0}。如果数组大小与所给元素个数不相符用0补齐。上图这种方式也可以相当于把非0的单独标出了适合数字稀疏的数组。通过下面这段代码可以实现在输入-1之前每输入一个数都被依次放到数组里。这样写时在终端输入数字不用一个一个敲可以输入多个数字并用空格隔开最后回车会一次性读入。但这样有个隐患输入的数字个数cnt如果超出数组索引极限怎么办2. 数组特点数组里的元素在内存里是紧密排列的。在赋值左边叫左值右边叫右值。一般有两种方式来解决一是在代码运行时注意判断达到最大下标就跳出。二是利用C99特点在代码开头使用变量来定义数组大小。长度为0的数组可以存在但无用。3. 数组运算1求数组大小/元素个数可以利用sizeof读出整个数组的内存再除以第一个元素的内存就可以算出有几个元素。在遍历和数组大小有关的循环时这种方式用于循环条件中与直接给一个确定数字的方式相比不需要频繁修改代码。2数组赋值小tip和数组有关的遍历一般写成从0开始到小于数组长度。3搜索元素int search(int key, int a[], int length){ int ret-1; int i; for(i0;ilength;i){ if(a[i]key){reti;break;} } return ret; }这个代码可以实现搜索数组a里有没有key这个元素有的话输出索引没有的话输出-1。注意数组作为函数参数时不能在[]中给出大小也不能再用sizeof测大小往往还需要传入另外一个长度参数length。4. 二维数组一维数组只需要一重循环二维数组需要两重循环。a[i,j]括号里是一个表达式逗号相当于运算符因此a[i,j]a[j]。二维数组初始化写成这样只是为了让读者更好看懂。也可以写成一行只要给了列数编译器会自动分行。二维矩阵读入检查行和列例子来源井字棋代码基本一样区别在于检查行时外层循环行内层循环列。反之先列后行。检查对角线正对角线和反对角线5. 数组举例1统计个数输入0~9的数字不限输入多少个输入-1停止。统计每个数字出现了多少次。int num[10] {0}; int x; scanf(%d,x); while (x ! -1) { if (x 0 x 9) { num[x]; } scanf(%d,x); } for (int i 0;i9;i) { printf(%d出现了%d次。\n, i, num[i]); }2素数判断一个数字是否为素数时一般做法是让小于1/2它或者sqrt(x)的数字尝试去除但这样会耗费许多循环。上述代码可以得到前100个素数之后判断别的数字只需要拿已知的素数去除它就行。注意这里的prime[count]i;这行代码相当于一个指针把一个素数填入数组对应位置的同时count推到下一个位置上。构造素数表的思路演进[1] 基本原则[2] 伪代码[3] 代码6. 其他细节1一道例题这里C选项的意思其实是a[0][0]那个算式是一个布尔值。2一道例题这里注意数组定义方式这样写是三个元素一组的。3int x[10]{1,2,3}不管初始化时大括号里面有几个这个数组有10个int元素在内存里占40字节。
http://www.rkmt.cn/news/1393613.html

相关文章:

  • Linux 日志系统入门:/var/log 和 journalctl 怎么排查问题?
  • 叙事脚本与模拟社交平台:青少年数字素养教育的创新实践
  • 11.1 KFD Context 的设计动机:从单进程单上下文到多上下文隔离
  • 一次通关结构体、位断、联合体和枚举这四大痛点
  • 燃气管网在线监测自动告警系统方案
  • Tablacus Explorer:终极免费文件管理器快速入门指南
  • 正则表达式极速教程
  • 国电华美车载式高压无局放,把试验室“开”到现场
  • 异构感知终端全域统管方案
  • 武汉国电华美车载式高压无局放,现场干活儿的得力帮手
  • 5步掌握Django电子商务项目实战:从零构建完整电商系统
  • 简单好用!WinRAR的三种密码保护方式
  • Linux 环境变量详解:PATH、export、source 到底是什么?
  • 小样本时间序列分类:多模态编码与元特征融合框架解析
  • 实现自己的IOC容器——Winter (一)Bean加载
  • 爆款标题生成率提升4.8倍!广告公司总监压箱底的ChatGPT创意写作AB测试报告(2024Q2最新)
  • 百度网盘下载加速终极指南:使用Python工具实现满速下载的完整教程
  • 系统辨识选最小二乘还是最大似然?一个传感器噪声的例子讲明白
  • 从“飞起来”到“管得好”:2026工程进度低空管理系统供应商推荐 - 品牌2025
  • ChatGPT账号被临时限制?官方未公开的4级风控触发阈值(含IP信誉分、会话熵值、UA指纹校验逻辑)
  • 鸿蒙数学108篇 第四篇:存在与虚无数理逻辑:数学存在的底层公理
  • Scrum成功案例分析
  • 虚拟网络映射优化:基于时间概率模型的动态资源调度
  • 降精度计算在射电天文成像中的应用:FPGA硬件加速实践
  • Linux 文件权限详解:chmod、chown、umask 到底怎么用?
  • 嵌入式SIR可调谐腔体滤波器设计:实现52.4%宽调谐与恒定带宽
  • SSH Kex_exchange_identification错误根因与实战修复指南
  • 2026年5月欧米茄“非官方售后”陷阱深度起底报告 - 资讯纵览
  • HarmonyOS ArkTS DeviceUtil 设备标识符完整指南:DeviceId、ODID、OAID、AAID
  • 解决Claude Code token不足与封号风险Taotoken提供稳定替代方案