Δημοσιεύτηκε: 18 Ιουν 2011, 00:02
από migf1
Υποθέτω πως ήταν πλήρως κατανοητός ο κώδικας, μιας και δεν χρειάστηκε καμία διευκρίνηση :)

Παραθέτω νέο κώδικα που υλοποιεί και τα υπόλοιπα (πλήθος, μέγιστος, άθροισμα, μέσος όρος) συν μια ακόμα βελτίωση: αντί να ρωτάει στην αρχή τον χρήστη πόσους αριθμούς προτίθεται να εισαγάγει, διαβάζει συνεχώς αριθμούς μέχρι ο χρήστης να εισαγάγει τον αριθμό που έχει οριστεί στη σταθερά: stop (τις μεταβλητές τις ορίζω ως long int, αντί για σκέτο int, για να δουλεύει και με πάρα πολύ μεγάλους αριθμούς).

Spoiler: show
Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <stdlib.h>

#define myexit(x) printf("\npress ENTER to exit..."); fflush(stdin); getchar(); exit((x))

//-------------------------------------------------------------------------------------
// Διαβάζει ακέραιους από τον χρήστη μέχρι να εισαχθεί η τιμή που ορίζεται στη
// μεταβλητή stop, και κατόπιν τυπώνει το πλήθος, το άθροισμα και τον μέσο όρο
// των ακεραίων, καθώς επίσης και το ποιος ήταν ο ελάχιστος και ποιος ο μέγιστος
//
int main( void )
{
const long int stop = 0, num = -1; // το num ποτέ ίδιο με το stop εδώ πέρα
long int min, max, sum=0, avg=0;
register int i; // μετρητής πλήθους

printf("(enter %d to stop inputing)\n", stop);
for (i=0; ; i++) // infinite loop !!!
{
printf("number %-3d: ", i+1);
fflush(stdin); scanf("%d", &num); // διάβασμα του num
if (num == stop) // τερματισμός του loop !!!
break;
if (i == 0) // μονο την 1η φορά...
max = min = num; // αρχικοποίηση των min, max
else if ( num < min )
min = num;
else
max = num;
sum += num; // ενημέρωση του αθροίσματος
}

if ( i == 0 ) {
puts("You did not enter any number");
myexit(0);
}

printf("\nYou entered %d number(s)\n\n", i);
printf("Smallest: %d\n", min);
printf("Largest : %d\n", max);
printf("Sum : %d\n", sum);
printf("Average : %d\n", sum/i);

myexit(0);
}


migf1 έγραψε:Σωστός !!!!!!!!!!!

Σε spoiler λοιπόν :)

Spoiler: show
Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <stdlib.h>

int main( void )
{
int lim=0, num=0, min=0; // limit, number, minimum
register int i;

printf("How many numbers? ");
fflush(stdin); scanf("%d", &lim);

for (i=0; i < lim; i++)
{
printf("enter #%d: ", i+1);
fflush(stdin); scanf("%d", &num);
if (i == 0 || num < min)
min = num;
}
printf("the smallest of the numbers you entered is: %d\n", min);

fflush(stdin); getchar();
exit(0);
}


ΥΓ. Σε ότι χρειάζεστε διευκρίνηση, ρωτήστε έτσι;