数据以伪代码输入到二维数组

时间:2012-05-18 20:42:21

标签: arrays algorithm pseudocode

问题在于,当列号未知时,我不确定如何将数据从键盘加载到二维数组。具体来说,我需要一个程序来存储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时依此类推。我最初认为为了实现目标,我只需要返回光标(这可以在用户输入'*'之后完成),但这几乎不是真的,是吗?

你能不能请 - 请帮助我更好地理解这个问题?

谢谢。

1 个答案:

答案 0 :(得分:0)

您的伪代码存在一些问题:

  1. 您在阅读之前尝试验证成绩
  2. 您没有明确填充二维数组Grades
  3. 您没有将学生索引处理到数组
  4. 如果您想迭代主题,然后是学生,您可以这样做:

    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