数组作业求助:验证代码是否完成最大值查找及降价需求
代码分析与修正建议
先拆解你的代码问题,对应作业的两个要求逐一说明:
一、找最高价格的部分
你的核心逻辑是对的,但有个关键错误:
如果是0索引数组(绝大多数编程语言的默认规则),100个元素的索引范围是0~99,你写的for i = 1 to 100会访问到不存在的第101个元素(索引100),导致越界错误,应该改成for i = 1 to 99。另外代码里数组名用的是a,和题目里的prices不一致,注意保持命名统一。
二、最高价格降10%的部分
这部分逻辑完全错误:
- 你写的
max - (max/0.1)等价于max - 10*max,结果是负数,和“降10%”毫无关系。 - 正确的计算应该是:原价减去原价的10%,即
max * 0.9,或者max - (max * 0.1)。 - 另外你定义的
sum变量完全多余,题目不需要求和,直接输出降价后的价格即可。
修正后的伪代码示例
Set max = prices[0]; for i = 1 to 99 by 1 do if prices[i] > max then Set max = prices[i]; endif endfor discounted_max = max * 0.9; print(discounted_max);
内容的提问来源于stack exchange,提问作者invertdefault
相关产品推荐
相关产品推荐

