Przerwanie wczytywania danych do tablicy
Ostatnio zmodyfikowano 2015-12-12 16:10
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ć for( int i = 0; i < 100; i++ ) { float tab[ 100 ]; scanf_s( "%f", & tab[ i ] ); } |
|
1aam2am1 |
» 2015-12-11 21:23:42 Co rozumiesz przez żadną wartość. |
|
carlosmay |
» 2015-12-11 21:38:44 Zmienna typu liczbowego musi mieć jakąkolwiek wartość. Nie da się wczytać pustej zmiennej jak std::string . |
|
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 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; } |
|
carlosmay |
» 2015-12-12 00:39:32 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. |
|
Matis28 Temat założony przez niniejszego użytkownika |
» 2015-12-12 16:10:09 Problem rozwiązany. Dzięki za pomoc :) |
|
« 1 » |