Δημοσιεύτηκε: 06 Σεπ 2011, 19:53
από migf1
Ωραίος !!! :)

Υπάρχει άλλη μια περίπτωση, όταν ο χρήστης σου δώσει νούμερο που δεν υπάρχει μέσα στον πίνακα, οπότε η num_find_position() επιστρέφει -1, άρα και εκείνο το nums[ pos-1 ] στην printf ισοδυναμεί με nums[ -2 ] ;)

Ορίστε ο κώδικας διορθωμένος...

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

#include <stdio.h>
#define MAXNUMS 5
// -------------------------------------------------------------------------
int num_find_position( int *nums, int n )
{
int i = 0;

for (i=0; i < MAXNUMS; i++ )
if ( nums[ i ] == n )
return i;

return -1;
}
// -------------------------------------------------------------------------
int main( void )
{
int nums[ MAXNUMS ] = { 10, 20, 30, 40, 50 };
int n, pos;

printf("Dwste enan arithmo na sas pw poios einai dipla toy apo aristera ston pinaka: ");
scanf( "%d", &n);

pos = num_find_position( nums, n );
if ( pos == -1 )
printf("Den yparxei arithmos %d ston pinaka\n", n);
else if (pos == 0)
printf("Den yparxei arithmos aristera toy %d\n", nums[ 0 ] );
else
printf("O arithmos poy brisketai aristera apo ton %d einai o %d\n", n, nums[ pos-1 ] );

return 0;
}