[c] Wprowadzanie cyfr i zamienianie ich miejscami
Ostatnio zmodyfikowano 2014-02-19 14:29
mors Temat założony przez niniejszego użytkownika |
[c] Wprowadzanie cyfr i zamienianie ich miejscami » 2014-02-15 11:23:12 Witajcie, napisałem program który zamienia cyfry miejscami. Nie działa on poprawnie dla nieparzystej liczby cyfr ( zamienia wtedy też ostatnią i wszystko się sypie ) chciałbym alby przy nieparzystej liczbie cyfr ostatnią zostawił w spokoju. #include <stdio.h> #include <stdlib.h> #include <math.h>
void przestaw( int tab[], int n ) { int flaga = 0; if( n % 2 != 0 ) { flaga = 1; } int i, temp, j; for( i = 0; i < n; i++ ) { for( j = 0; j < n - 1 - i; j++ ) { temp = tab[ i + 1 ]; tab[ i + 1 ] = tab[ i ]; tab[ i ] = temp; } } }
int main() { int a, i; printf( "Podaj wielkosc tablicy:" ); scanf( "%d", & a ); int tab[ a ]; for( i = 0; i < a; i++ ) { scanf( "%d", & tab[ i ] ); } przestaw( tab, a ); printf( "\n\n" ); for( i = 0; i < a; i++ ) { printf( "%d\n", tab[ i ] ); } return 0; } |
|
00Andre |
» 2014-02-15 12:08:15 Może dodaj też else gdy nie są podzielne przez dwa i ustaw flagę na 0 |
|
Adik80 |
» 2014-02-17 12:30:37 chcesz przestawic 1 z 2, 3 z 4, itd. ? void przestaw( int tab[], int n ) { int i, temp; for( i = 0; i < n - 1; i += 2 ) { temp = tab[ i + 1 ]; tab[ i + 1 ] = tab[ i ]; tab[ i ] = temp; } } |
|
mors Temat założony przez niniejszego użytkownika |
» 2014-02-19 14:28:06 Wejście: -1 2 31 400 -20 Wyjście: 2 -1 400 31 -20
-20 mi jeszcze niepotrzebnie przestawia |
|
mors Temat założony przez niniejszego użytkownika |
» 2014-02-19 14:29:56 Ok, działa. Dzięki Adik80 Możecie mi jeszcze wytłumaczyć po co ja miałem tą 2 pętle? (kierowałem się przestawianiem przy sortowaniu bąbelkowym) |
|
« 1 » |