【连载】(一维数组的简单应用)——乐创DIY C语言讲义——5.3节 2024-04-24 03:05:43 5.3 一维数组的简单应用前面我们已经讲述了如何去定义一个一维数组,并且对所定义好的一维数组进行元素的读写和数组的遍历,本小节专门再来讲述一些数组的具体应用,使各位读者可以更好地去掌握一维数组。首先,我们来看第一个问题,即利用C语言来求解我们小学时候就知道的一道数学题,从1开始依次加2加3最终加到100,求其和为多少,即1+2+3+4+……+100=?这道其实非常简单,我们只需要定义一个长度为100的数组,分别对数组中的每个元素依次赋初值,即0,1,2,3一直到100,然后遍历这个数组,将这个数组中所有的元素中所存储的数值进行相加然后输出即可。因此我们可以写出如图5-3-1所示的程序。 图5-3-1 1到100求和程序以上这个数组求和的方式,是非常常用的,不仅是在用C语言做上位机的时候会用到,在我们做单片机程序的时候也经常会用到,比如我们在做AD采样时,常常会对采集到的数据进行平均,其做法为,先让AD去定时采样,将采样值存入数组中,一旦数组的长度达到了我们所指定的值时,就将AD采样值数组中的元素进行遍历相加,然后再除以元素个数,就可以得到平均值了。接着,我们来看第二个问题,分类问题。小明有一天非常无聊,他要做一个实验,数一下是不是每朵玫瑰花的花瓣数都是奇数,还是都是偶数。因此小明去好朋友那里偷了朋友准备送给女朋友的玫瑰,而小明看到这束玫瑰一共11朵,强迫症犯了,只拿走了10朵,于是他一个下午数完了这10朵玫瑰的花瓣,并且记录了下来,分别是42,45,41,40,48,49,45,41,44,43片。那我们帮他写个程序,将这些花朵为奇数片花瓣数量统计出来,并且将其数量存下来,偶数片花瓣的数量统计出来,并且存下花瓣数量。遇到这种问题,让你去分类或者去求和的,那么基本上都是需要对整个数组中的元素进行遍历。每一次遍历的循环,我们就可以来判断当前的元素是奇数或者偶数了。而在此之前,我们需要先定义两个数组,一个用来存放奇数,一个用来存放偶数。同样的,每个数组都需要定义一个相应的变量来表示元素写入的位置。因此整个程序的流程应该为:第一步,定义一个数组,用来存放十朵玫瑰花的花瓣数。“int PetalNum[10] = {42, 45, 41, 40, 48, 49, 45,41, 44, 43};”。第二步,定义两个数组,分别存放奇数花瓣数和偶数花瓣数,同时,需要在定义两个变量来存储当前数组写入的元素位置。“int OddPetalNum[10]; int OddArrayIndex = 0;”。“int EvenPetalNum[10]; int EvenArrayIndex = 0;“。第三步,遍历数组“PetalNum[10] “,并且对其内部的每个元素进行判断。如果判断出来的数值为奇数,则存入”OddPetalNum“数组,同时奇数数组索引”OddArrayIndex“加1;如果判断出来的数值为偶数,则存入”EvenPetalNum“数组,同时奇数数组索引”EvenArrayIndex“加1。第四步,分别将”OddArrayIndex“和”EvenPetalNum“数组的元素遍历打印出来,而遍历的次数则为当前的”OddArrayIndex - 1“和”EvenPetalNum - 1“。根据以上分析的步骤,我们可以写出代码,如图5-3-2所示。 图5-3-2 对数组中的元素进行分类 赞 (0) 相关推荐 百度从Google学来的面试题,想进大厂必备! 今天是小浩算法"365刷题计划"第59天.为大家分享一道FLAG和BAT都出现过的经典面试题.题目有一定难度,建议大家耐着性子看完!不要说没天赋看不懂.在这个浮躁到努力的人都很少的 ... 寻找两个有序数组的中位数 问题描述给定两个大小为m和n的有序数组nums1和nums2,找出这两个有序数组的中位数.示例一:nums1=[1,3]nums2=[2]则中位数为2示例二:nums1=[1,2]nums2=[3,4 ... 【连载】(函数私有化)乐创DIY C语言讲义——4.6节 4.6 函数私有化 C语言的语句非常简单,关键词也少得可怜,关于变量和函数的修饰符也就只有区区几个,因此一个关键词有时候有着多重含义,这也就是为何C语言明明非常简单,但是用起来又非常复杂的原因之一.C ... 【连载】(函数声明和简单的Makefile文件)乐创DIY C语言讲义——4.2节 4.2 函数声明 当编译器检测到一个函数调用时,它产生代码传递参数,并且调用这个函数,等函数运行完成之后,接收到这个函数的返回值(如果函数有返回值).但是编译器是如何知道函数接收到的是什么类型和多少数 ... 【连载】(堆栈和递归函数)乐创DIY C语言讲义——4.5节 4.5 堆栈和递归函数 堆栈这个概念,最早学习微机原理的时候就学过,它表示的是一种在汇编语言调用子程序时候保存现场的存储空间,它所具有的数据结构属性就是先进后出,这个是我们之前学习计算机硬件时候讲述的 ... 【连载】(学了这么多年C语言,你真的了解static关键词吗)乐创DIY C语言讲义——4.4节 4.4 变量的补充 前面内容中,我们已经讨论了变量的定义,但是由于函数的概念还没有引入,因而这是不全面的,本节开始,我们再来补充一些变量的其他内容,这就相当于对变量这个概念的重新认识. 我们之前讲的变 ... 【连载】(函数的参数和返回值)乐创DIY C语言讲义——4.3节 4.3 函数的参数和返回值 函数定义和声明好之后,整个函数也就定义好了,上一小节我们说到,声明函数原型的目的,就是将函数的信息传递给编译器"登记"下来,以便后续调用时进行参数的检查 ... 【回顾】(函数声明和简单的Makefile文件)乐创DIY C语言讲义——4.2节 4.2 函数声明 当编译器检测到一个函数调用时,它产生代码传递参数,并且调用这个函数,等函数运行完成之后,接收到这个函数的返回值(如果函数有返回值).但是编译器是如何知道函数接收到的是什么类型和多少数 ... 【连载】(函数的定义)乐创DIY C语言讲义——4.1节 4.1函数的定义 到目前为止,我们所有的程序都是以"main()"函数作为程序的唯一入口的,对main函数的解释,也就仅限于其作为整个程序的入口.但是函数的定义,入口参数,返回值等 ... 【连载】(选择执行语句if else和switch)乐创DIY C语言讲义——3.8节(4) 4 选择执行语句 有些时候,我们希望程序既不顺序执行,也不只做单一的判断(代码运行还是不运行),很多时候,我们往往只希望对某一个条件的不同状态分别执行不同的语句,这样就构成C语言中的选择执行语句了.C ... 【连载】(循环执行语句while和if)乐创DIY C语言讲义——3.8节(3) 2 循环执行语句 计算机有一个强大的能力,快速地重复执行某一计算,这种重复计算多次的方法,是通过软件中的循环执行语句去实现的.C语言中实现循环语句结构的方式有三种,第一种为"for" ... 【连载】(判断执行语句)乐创DIY C语言讲义——3.8节(2) 2 判断执行语句 判断执行语句,执行时候会有一个条件判断,一旦当条件判断为真,即True的时候,就执行相应的语句,满足条件被执行的语句用大括号"{}"括起来.由于在C语言中没有用于 ...