Witam! Mam programik, który najpierw tworzy tablicę jednowymiarową tab o wybranej długości n i wypełnia ją losowymi liczbami. Potem funkcja sprawdz szuka w tej tablicy podanego przez użytkownika parametru a i w zależności od
- jeśli znajdzie tylko raz, zwraca i wyświetla jego indeks w tablicy
- jeśli znajdzie więcej niż raz, zwraca i wyświetla indeks pierwszego wystąpienia
- jeśli nie znajdzie, zwraca -1 i wyświetla że nie ma
Niestety czego bym nie podała zawsze pisze nie ma parametru a w tablicy. Próbowałam też zrobić to w jednej funkcji i jednej pętli, ale wtedy pętla zatrzymywała się po pierwszym znalezionym parametrze.
Co jest nie tak?
int sprawdz( int * tab, int n, int a ) {
//int r = 1 + (int)(rand() / (RAND_MAX + 1.0) * 100);
// tab[n];
//int licznik = 0;
int i;
for( i = 0; i <=( n - 1 ); i++ ) {
if( tab[ i ] == a ) {
printf( "Index a = %d \n", i );
return i;
}
//printf("\n");
if( tab[ i ] != a ) {
printf( "Brak parametru a w tablicy! \n" );
return - 1;
}
}
}
int main( int argc, char * argv[] ) {
int n;
int i;
int a;
printf( "Podaj długosć tablicy: \n" );
fflush( stdout );
scanf( "%d", & n );
int tab[ n ];
for( i = 0; i <=( n - 1 ); i++ ) {
//tab[i]=(rand() % 10)+1;
tab[ i ] = 1 +( int )( rand() /( RAND_MAX + 1.0 ) * 10 );
printf( "Tablica : %d \n", tab[ i ] );
}
printf( "Podaj parametr a: \n" );
fflush( stdout );
scanf( "%d", & a );
sprawdz( tab, n, a );
//return 0;
}