Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C, sortowanie tablic, wyszkuiwanie wartosci

Ostatnio zmodyfikowano 2015-11-15 13:31
Autor Wiadomość
melek94
Temat założony przez niniejszego użytkownika
C, sortowanie tablic, wyszkuiwanie wartosci
» 2015-11-15 13:19:24
Witam, byłbym wdzięczny gdyby mi ktoś wytłumaczył, dlaczego funkcja how_many nie zwraca poprawnie ile razy dana liczba wystąpiła w uporządkowanej tablicy.
C/C++
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int how_many( int tab[], int value ) {
    int i = 0, counter = 0;
    for( i = 0; i < 30; i++ ) {
        printf( "%d. = %d\n", i, tab[ i ] );
        if( tab[ i ] = value ) counter++;
       
        if( tab[ i ] > value ) return counter;
       
    }
}
void swap( int * first, int * second ) {
    int tmp;
    tmp = * first;
    * first = * second;
    * second = tmp;
}
void selection_sort( int tab[] ) {
    printf( "-------------------------------------------\n" );
    int i, j;
    for( i = 0; i <= 29; i++ ) {
        int min = i;
        for( j = i + 1; j <= 29; j++ )
        if( tab[ min ] > tab[ j ] )
             min = j;
       
        if( min != i )
             swap( & tab[ min ], & tab[ i ] );
       
    }
}
int main() {
    int tab[ 30 ], i = 0, test;
    srand( time( NULL ) );
    for( i = 0; i <= 29; i++ ) {
        tab[ i ] = rand() % 11;
        printf( "%d\n", tab[ i ] );
    }
    selection_sort( tab );
    for( i = 0; i <= 29; i++ ) {
        printf( "%d\n", tab[ i ] );
    }
    printf( "---------------------------\n" );
    printf( "Wprowadz liczbe, aby sprawdzic, ile razy zostala wylosowana:\n" );
    scanf( "%d", & test );
    printf( "Liczba %d zostala wylosowana %d razy.\n", test, how_many( tab, test ) );
   
}
P-140152
carlosmay
» 2015-11-15 13:21:38
C/C++
if( tab[ i ] = value )
 zastosoawano operator przypisania zamiast porównania.
C/C++
if( tab[ i ] > value ) return counter;

 a to nie ma sensu. Zwróć wartość 'counter' po przejściu całej tablicy.
P-140153
melek94
Temat założony przez niniejszego użytkownika
» 2015-11-15 13:31:10
Wszystko jasne, dzieki.
P-140157
« 1 »
  Strona 1 z 1