Δημοσιεύτηκε: 28 Ιουν 2011, 12:57
migf1 έγραψε:Αλγοριθμικά πάντως, αυτό που επισήμανα στον arkanoid υλοποιημένο είναι ως εξής (ο κώδικας είναι σε C, αλλά κατάλαβα πως οι συντακτικές διαφορές είναι ελάχιστες, οπότε υποθέτω μπορεί πολύ εύκολα κάποιος που ξέρει τη γλώσσα να το κάνει valid python code)...
- Κώδικας: Επιλογή όλων
//-------------------------------------------------------------------------------------
int centered_average( int nums[], int maxlen )
{
int min, max, sum = 0, n = 0;
register int i;
int retint = 0;
min = max = nums[0];
for (i=0; i < maxlen; i++)
{
if ( nums[i] < min )
min = nums[i];
else
max = nums[i];
sum += nums[i];
}
return (sum-min-max)/(i-2);
}
Το i είναι βασικά το πλήθος στοιχείων του nums, και προφανώς υπολογίζεται μέσα στο loop.
Οπότε γλιτώνεις τη χρήση της len, γιατί ξέρεις από την αρχή το μέγεθος του πίνακα.
Αν δεν είχες το maxlen ως είσοδο τι θα έκανες; Αν ο πίνακας ήταν δηλαδή άγνωστου μεγέθους;
@sv1jsb συμφωνώ με τις διορθώσεις, και ωραία η ιδέα με την αρχικοποίηση του sum στο πρώτο στοιχείο του πίνακα.