[C] Usprawnienie kodu, wypisywanie liczb nieparzystych z dowolnego przedziału.
Ostatnio zmodyfikowano 2016-05-22 21:43
Master_Exploder Temat założony przez niniejszego użytkownika |
[C] Usprawnienie kodu, wypisywanie liczb nieparzystych z dowolnego przedziału. » 2016-05-21 15:24:09 Cześć. Dostałem zadanie napisania programu, między innymi, wypisującego liczby nieparzyste z wybranego przedziału w tablicy 100 elementowej. Ilość wypisywanych elementów zależy od przedziału (i od tego czy przedział to dwie liczby parzyste, dwie nieparzyste lub nieparzysta i parzysta) i muszę ograniczyć wypisywanie tych elementów tablicy, które nie zostały zapełnione, bo w pozostałej, niezapełnionej, części tablicy pojawiają się przypadkowe liczby. Sposób zaprezentowany poniżej działa, ale mam wrażenie, że jest to metoda "partyzancka" i chciałbym to jakoś usprawnić. Będę wdzięczny za sugestie zmian. #include <stdio.h> #define ROZ 100 void nieparzyste( int[], int, int ); int main() { while( 1 ) { int T[ ROZ ]; int i, A, B; printf( "1:l nieparzyste\n4:wyjscie\n" ); int operacja; scanf( "%d", & operacja ); switch( operacja ) { case 1: { printf( "Podaj przedzial liczb nieparzystych:\n" ); scanf( "%d", & A ); scanf( "%d", & B ); nieparzyste( T, A, B ); if( A % 2 == 0 ) { if( B % 2 == 0 ) { for( i = 0; i <( B - A ) / 2; i++ ) { printf( "%d,", T[ i ] ); } } else { for( i = 0; i <( B - A ) / 2 + 1; i++ ) { printf( "%d,", T[ i ] ); } } } else for( i = 0; i <( B - A ) / 2 + 1; i++ ) { printf( "%d,", T[ i ] ); } printf( "\n" ); break; case 4: { goto koniec; break; } default: { printf( "nieznana operacja\n" ); break; } } } koniec: return 0; } void nieparzyste( int T[], int A, int B ) { int i, j = 0; for( i = A; i <= B; i++ ) { if( i % 2 != 0 ) { T[ j ] = i; j++; } } }
|
|
pekfos |
» 2016-05-21 16:05:46 Po co to wszystko? int a, b; scanf( "%d%d", & a, & b );
if( a % 2 == 0 ) ++a;
for(; a <= b; a += 2 ) printf( "%d ", a ); |
|
Master_Exploder Temat założony przez niniejszego użytkownika |
» 2016-05-22 21:43:35 Dziękuję bardzo, jest mi głupio, że wymyślam takie "dzikie" sposoby na proste rzeczy ;p
|
|
« 1 » |