用perl语言编写一个程序,不断接受用户输入的学号和相应成绩,直到输入的学号为0时,输出所有输入中成绩最高的学号和成绩及成绩最底的学号和成绩
时间: 2024-03-06 11:51:21 浏览: 25
好的,以下是您需要的Perl程序:
```
#!/usr/bin/perl
use strict;
use warnings;
my $max_score = -1;
my $max_student = '';
my $min_score = 101;
my $min_student = '';
while(1) {
print "请输入学号和成绩(学号为0时退出): ";
my $input = <STDIN>;
chomp($input);
# 如果输入学号为0,退出循环
if ($input =~ /^0$/) {
last;
}
# 解析学号和成绩
my ($student, $score) = split(/\s+/, $input);
# 如果成绩比当前最高分更高,更新最高分
if ($score > $max_score) {
$max_score = $score;
$max_student = $student;
}
# 如果成绩比当前最低分更低,更新最低分
if ($score < $min_score) {
$min_score = $score;
$min_student = $student;
}
}
# 输出最高分和最低分的学生信息
print "最高分学生:$max_student,成绩:$max_score\n";
print "最低分学生:$min_student,成绩:$min_score\n";
```
这个程序会不断接受用户输入的学号和成绩,直到输入的学号为0时,输出所有输入中成绩最高的学号和成绩及成绩最底的学号和成绩。注意,输入的格式应该是“学号 成绩”,中间用空格隔开。