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

Przerwanie wczytywania danych do tablicy

Ostatnio zmodyfikowano 2015-12-12 16:10
Autor Wiadomość
Matis28
Temat założony przez niniejszego użytkownika
Przerwanie wczytywania danych do tablicy
» 2015-12-11 18:26:42
Cześć.Chciałem napisać program, który wczyta do tablicy nie więcej niż 100 liczb a w razie nie podania żadnej wartości przerwie wczytywanie danych ale nie mam kompletnie pomysłu jak to zrobić. Narazie udało mi się coś takiego wyskrobać 
C/C++
for( int i = 0; i < 100; i++ ) {
    float tab[ 100 ];
    scanf_s( "%f", & tab[ i ] );
}
P-141780
1aam2am1
» 2015-12-11 21:23:42
Co rozumiesz przez żadną wartość.
P-141791
carlosmay
» 2015-12-11 21:38:44
Zmienna typu liczbowego musi mieć jakąkolwiek wartość.
Nie da się wczytać pustej zmiennej jak std::string .
P-141795
Matis28
Temat założony przez niniejszego użytkownika
» 2015-12-11 23:13:33
Dopiero teraz zrozumiałem jakie mam zadanie. Dzięki za pomoc :)

Edit: Jednak teraz mam odrobinę inny problem. Chciałem żeby program wczytał dane do tablicy. Wyłączył się gdy użytkownik poda jakąkolwiek inną wartość niż liczbę typu float a następnie znalazł w tej tablicy największą i najmniejszą wartość. Na razie jedyne co robi dobrze to wczytuje liczby jednak gdy skończy i chcę aby wyświetliło max i min działa jedynie min.Oto kod
C/C++
void wypelni( float tab[], int & ile ) {
    for( int i = 0; i < 100; i++ ) {
        scanf( "%f", & tab[ i ] );
        ile++;
    }
}

void wypisz( float tab[], int ile ) {
    float max = tab[ 0 ];
    float min = tab[ 0 ];
    float mediana;
    for( int i = 0; i <= ile; i++ ) {
        if( max < tab[ i ] )
             max = tab[ i ];
       
    }
    for( int i = 0; i <= ile; i++ ) {
        if( min > tab[ i ] )
             min = tab[ i ];
       
    }
    cout << "Najmniejsza wartosc wynosi: " << min << endl;
    cout << "Najwieksza wartosc wynosi: " << max << endl;
    system( "pause" );
}

int main() {
    int a;
    float tab[ 100 ];
    int iwprowadzone = 0;
    do {
        cin >> a;
        switch( a ) {
        case 6: {
                wypelni( tab, iwprowadzone );
            }
        case 7: {
                wypisz( tab, iwprowadzone );
            }
            default: {
                break;
            }
        }
        cin.ignore( 10, '\n' );
    } while( a != 10 );
   
   
    return 0;
}
P-141804
carlosmay
» 2015-12-12 00:39:32
C/C++
for( int i = 0; i <= ile; i++ )
 Warunki pętli powodują wyjście poza tablicę.

int iwprowadzone = 0;
 ta zmienna jest ciągle inkrementowana i przy kolejnym powtórzeniu wczytywania
ustala liczbę wczytanych elementów większy niż faktyczny rozmiar tablicy.

P-141807
Matis28
Temat założony przez niniejszego użytkownika
» 2015-12-12 16:10:09
Problem rozwiązany. Dzięki za pomoc :)
P-141821
« 1 »
  Strona 1 z 1