Hello jimmy88, and welcome to the Monastery!

Aside from the problem with $mingrade, which atcroft has already addressed, there is a subtle logic error in your script which is masked by the fact that in the data file “grades.txt” the final line’s “exam” happens to be the value of the total number of exams. Change the order of this file to this:

... 222223 5 96 244668 5 95 355779 5 94 122334 1 98

and the averages will all be wrong. The reason for this is the way Perl aliases the variable in a foreach loop: after the foreach $exam (1..$lastexam) { loop has completed, $exam reverts to the value it had before the loop was entered. In this case, you can fix the problem by changing the line:

printf "%8d",$total / $exam;

to:

printf "%8d",$total / $lastexam;

Note also that this script would be greatly improved by the addition of the lines:

use strict; use warnings;

at its head. Converting global variables to lexicals will require some thought (to determine the correct placement of each my declaration), but the effort expended now will be more than repaid by the debugging time you will save down the track. (To silence the warnings, you will also need to initialise some of the variables.)

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,


In reply to Re: Finding Minimum Value by Athanasius
in thread Finding Minimum Value by jimmy88

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.