【发布时间】:2016-05-11 04:24:24
【问题描述】:
我有一个需要帮助的学校作业。现在,我知道你在想什么,但我的老师不在城里,没有回复我的电子邮件,我的其他同学也不知道如何解决这个问题。一些指针和提示将不胜感激!
作业是这样的:
我们应该创建一个数组,用 20 到 30 个 1-100 范围内的随机整数填充它。然后,在子程序的帮助下,我们应该计算这些数字的平均值。
当我回调子程序时出现问题,这给了我答案 0 或“非法除以 0”错误。我现在的代码是这样的:
#! /usr/bin/perl -w
use warnings;
use strict;
# Declaring the scalar variables and arrays.
my @AllNumbers;
# Create random data set of between 20 to 30 measures used for the 100 random intigers.
my $random_number = int( rand( 31 - 20 ) ) + 20;
# Create random data set of 100 intigers.
for ( my $i = 0 ; $i <= $random_number ; $i++ ) {
$AllNumbers[$i] = int( rand( 100 - 1 ) );
}
# Print the 20 to 30 random numbers (range 1 - 100).
print("Your random numbers are: \n@AllNumbers");
sub average {
my $ArrayAverage = @_;
for (@_) {
my $total += $_;
}
return $ArrayAverage / $random_number;
} ## end sub average
# Print the mean/average of the 20-30 numbers.
print( "\n\nThe average of those random numbers is: ", &average, "\n\n" );
现在,正如我所说,我想自己解决这个问题,我已经花了整整两天的时间,但无论我做什么似乎都无法解决它。任何提示将非常感谢。附:应该提到的是,我们不应该使用任何模块/插件。
【问题讨论】:
-
顺便说一句,如果您需要 @AllNumbers 的覆盖范围为 1 -100,则应该以不同的方式完成。因为这个
rand(100-1)与rand(99)相同,它为您提供0 - 98 的范围。您需要进一步研究并修复它;) -
Stack Overflow 不禁止家庭作业协助。只是我们会帮助您理解它(并找出问题所在),而不是为您做。