鱼C论坛

 找回密码
 立即注册
查看: 3093|回复: 4

数组相关程序求解

[复制链接]
发表于 2017-11-16 16:09:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
对于下划线部分不明白:
1.为什么要定义一个 N+1而不是N?
2.while中的条件?
屏幕快照 2017-11-16 09.04.12.png
屏幕快照 2017-11-16 09.04.26.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-16 16:24:57 | 显示全部楼层
本帖最后由 三更未眠 于 2017-11-16 16:30 编辑

因为你的数组x的下标是从1开始的   所以是N+1  即101,结合下边的for循环来看,  do while 循环,会先执行一次do里边的代码再做判断,如果为真则继续循环,假则跳出循环,你要输入的是1 到 100 之间的数,那么判定的时候就会是假了,就会跳出循环往下执行;%lf 是因为你声明的s变量是double类型的 对应的就使用%lf咯,  int就%d, 其它数据类型也是有固定的对应的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-16 16:35:05 | 显示全部楼层
对于你这个程序,N+1,多出来的一个用于存放平均数
while中的是限制输入的n的范围,如果输入的数n,小于等于0或者是大于等于100,就会一直循环
%lf,是指输入的格式被当作double类型,就如%d,输入的类型为整形
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-16 16:41:05 | 显示全部楼层
1.为什么要定义一个 N+1而不是N?
根据代码来看,其实可以设置为N,因为虽然for循环中判断条件都是i<=n,但do-whlie循环中条件表明
n最大只能取到99

2.while中的条件?
do-while循环中的条件表示只有用户当输入1~99之间的数才能结束

%lf 格式化输入输出标识,用来表示该位置用一个double变量来填充,后面的s就是一个double变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-18 20:53:37 | 显示全部楼层
1 因为你的for语句中 i是从1开始的,也就是说x[0]并没有用到 但用户输入的数很有可能是100个数  所以这里用的101减去x【0】就是100个数了,这是为了看起来好看一点,当然也可以用N,只要把i初始化为0就好了。
但这里呢,又跟下面冲突了呢。具体看第二条吧
2.首先这个do while是问了让用户输入这个题有几个xn的,题目里虽然没有规定这个数列必须少于100个数,但码代码的人可能为了方便?就自作主张把数列的个数限制在100个以内了,也就是把xn的n限制在1到99了,冲突就在这了,上面申请的数组个数特意申请了100个,结果下面又只让用99个?那N+1的确是没啥意义了。不过本来初衷还是好的。。。。
3.这个%lf是必须这么写的一种格式呢,因为你数组是double类型的,如果是float类型的用%f就好了
顺带一提,输出的时候double也尽量用%lf呢,虽然输出的时候%f也能行,不过会有微小的精度损失呢  
希望能帮到你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 17:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表