已经到放弃的边缘。但是2021-8-23 中午我误打误撞的找到了解决下面这个题的方法
该题还是那本没有答案的教材里的内容
5.11 编写程序输入学生个数以及每个学生的分数,然后显示最高分和次高分。
根据题面。我今天先忽律学生个数的解答。我进入最高分和次高分。
data = eval(input("Enter data input: "))
number = data
while data != 0:
data = eval(input("Enter data input: "))
if data > number:
number = data
//这个公式直接求出了学生中最大的分数。
data = eval(input("Enter data input: "))
number = data
while data != 0:
data = eval(input("Enter data input: "))
if data > number:
number = data
continue //跳过最高数。但没有认定次高分的标准
我又定义了一个变量叫number2 我寄希望将次高分放到这个变量里。然后和最高分一起分别打印输出。
number2 = 0 //我的认为这个变量应该是0.也认为应该是data 两种方式都试了。最后我定义为0。结果还是失败。
再次尝试的失败。我有点闹心。玩游戏走神都不能解决问题。这个时候我改变了一下我的程序
data = eval(input("Enter data input: "))
number = data
while data != 0:
data = eval(input("Enter data input: "))
if data > number:
number2 = data
计算机打印出次高分。我很惊讶也很兴奋,成功了!可是很快打脸的事情发生了。 我用名为score.txt的文本文件来输入学生分数的。结果次高分正好是这个文本里的倒数第2行。下一行就是0。
所以程序显示次高分并不是识别出了次高分。而是因为次高分正好放在了倒数第2行的位置上。
这是程序员们的内心世界吧。不论你编的WIN10还是我这样的菜鸟。只要你在变成的世界里都会遇到这样的情况。这就是真正的Hello World!
我准备放弃。然后像以前一样重第一章重新开始做到第五章
今天中午自己还是很懒散的。最后终于把持不住回来做这道题。
本来自己也没有什么构想只是把number1和number2这些变量直接互相赋值。但是奇迹发生了。代码见下表:
data = eval(input("Enter data input: "))
number = data
number1 = 0
number2 = 0
number3 = data
while data != 0:
claNumber += 1
data = eval(input("Enter data input: "))
if data > number:
number = data
elif data > number1:
number2 = data
elif data > number2:
number3 = data
# elif number > number2:
print(f" First number is {number}")
print(f" Second number is {number2}")
print(f" Third number is {number3}")