c语言求正整数连续数的和大数字_C语言怎么编写求四个数的平均值?

这是一道初学者的练习题,估计学上没几天就会遇到这个题,或许是老师出的,或许是书里看到的,那今天,我就以初学者的角度来逐步做这道练习题。求四个数的平均值,首先第一点,我们应该知道程序需要哪些信息,这道题里,我们需要四个数值,但数值具体是浮点型还是整形并没有说明,所以我们假定为浮点型。

求平均值,无非就是将所有待求平均值的数值加在一起,然后除以项数。

所以,这道题的一个思路就出来了,读取用户输入的四个数值,计算平均值,打印输出。

那么我们来编写一下代码:

#include

0ead51652fe3a29b2163949a87bb46b2.png
运行结果

刚刚那个代码的确可以完成题目内容,但是我们仔细观察不难发现,程序运行一次后就退出了,并不能连续输入,所以我们再对代码进行一个小小的修改:

#include

8c79748f3c0214e51485367fd50d2e44.png
运行结果

我们加了一个简单的while循环,令程序可以循环读取输入,然后打印输出。直到遇到一个非数值的字符,scanf();函数返回零,while循环结束。但仔细观察后不难发现,这段代码还是放在单独的一个函数里更好,会更加整洁,令程序模块化,这样写出来的代码,老师也会夸!

相信大家在遇到这道题之前,老师已经讲过了函数的内容,这里就不过多叙述,经过简单的更改,源代码如下:

#include

虽然将计算平均值的任务放到了一个单独的函数,但我们仔细观察不难发现,程序看起来更糟了。这样的代码,老师看了只会鼓励你,并不会夸赞你。

我们在主调函数创建了四个用于储存值的变量,计算平均值的形参也定义了四个变量,写起来很麻烦,而且看起来很糟心。

那我们可以进行一点小小的改动,相信大家在遇到这道题之前,都学过了数组和指针还有宏定义吧。将四个变量放入数组中,传给函数数组,是不是好了许多?

经过简单的改动,源代码如下:

#include

我们将数值以数组形势作为参数传递于各个函数之间,这样,我们的自动变量就由原来的四个double型,变成了现在的一个指向double的指针,省下了一些空间,老师绝对会夸你!

而且我们还将待读取的项数定义为宏,这样日后如果想变成求三个数的平均值的程序,只需要修改NUMBER的值即可。毕竟每个老师想求的个数不同,可能李老师想要三个数的平均值,王老师想要五个数的平均值,如果每次都要改,就很麻烦,这样可以大大节省时间,老师一定会夸你!

这里有一个小细节没有说,那就是skip的函数,可能有些人不理解,为什么要加这个函数。

要知道,老师是会对你的代码进行上机测试的,而老师手下有那么多学生,每个人都测试,手指一定会酸软疲惫,很可能在输入数值的时候,多输入了一个数。那么在第二次读取数据的时候,这个数就会被当做第二次输入的数值读取。

老师可能不会注意到自己多输入了一个数字,但你的程序结果却是错的,那么你这一节的分数可能就会少了两分,按某些老师的平时成绩来算,可能就要扣下整个科目的0.5分,而恰巧是这0.5分,有极大的几率令你挂科,一旦挂科,就会心情低落,极有可能在补考的时候少写一个分号,造成程序崩溃,小错误累积成大错误,最后导致大挂。

而这件事情最后会成为你的心结,在又一次补考时,你极有可能又少打了一个分号,这样又会挂科,最后导致无法拿到毕业证。

当然这些都是我瞎编的,老师才不会自己测试呢,机器测试代码是不会多打一个零的。

但有人就要问了,为什么多此一举呢?

那是因为写上这个函数,可以让老师看到你深谋远虑的大脑,能预感到细微的问题,这样一来,你加分有望,老师都会夸你!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值