问题在于,当列号未知时,我不确定如何将数据从键盘加载到二维数组。具体来说,我需要一个程序来存储4个科目的学生成绩,而不知道学生的实际数量。
我已经想出了这个(我很确定这个决定是错误的,但这是我迄今为止最好的决定):
Declare Grades as dynamic two dimentional array of int
Loop: Subject = 1 to 4
Print 'Enter students grades for subject' + Subject#
Print 'Enter * when done'
If Grades <=100 && Grades >=0 then
While Grades <> '*'
Enter Grades w/o cursor return
WhileEnd
Else
Print 'Enter a valid grade'
EndIf
LoopEnd: Subject
我想从这段代码中不清楚Subject循环是如何起作用的,即当它从subject1变为subject2时依此类推。我最初认为为了实现目标,我只需要返回光标(这可以在用户输入'*'之后完成),但这几乎不是真的,是吗?
你能不能请 - 请帮助我更好地理解这个问题?
谢谢。
答案 0 :(得分:0)
您的伪代码存在一些问题:
如果您想迭代主题,然后是学生,您可以这样做:
Declare Grades as dynamic two dimensional array of int
Loop: Subject = 1 to 4
Print 'Enter students grades for subject' + Subject#
Print 'Enter * when done'
initialize student = 1
Repeat
Read Grades[student, subject] from the keyboard
If Grades[student, subject] <=100 && Grades[student, subject] >=0 then
student = student + 1
Else
Print 'Enter a valid grade for ' + student + ' in subject ' + subject
EndIf
Until Grades = '*'
LoopEnd: Subject