【连载】(一维数组的简单应用)——乐创DIY C语言讲义——5.3节

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)

相关推荐