wypisanie slowa od tylu
Ostatnio zmodyfikowano 2014-11-16 14:58
gambler13 Temat założony przez niniejszego użytkownika |
wypisanie slowa od tylu » 2014-11-16 01:51:10 Hej, programuję od kilku tygodni więc wybaczcie poziom który reprezentuje:) Muszę napisać program który poprosi o podanie słowa i wypisze je od końca. Myślę, że pomysł jest ok jednak gdzieś w kodzie jest błąd, ponieważ program wypisuje zamiast liter jedynie same linijki. #include <stdio.h> int main() { char c; int x; int i; int j; printf( "Ile liter ma miec slowo?\n" ); scanf( "%d", & x ); int tab[ x ]; char znak; printf( "Podaj slowo\n" ); for( i = 1; i <= x; i++ ) { scanf( "%c", & znak ); c = getchar(); tab[ i ] = znak; } tab[ i ] = tab[ j ]; printf( "slowo pisane od tylu to :\n" ); for( j = x; j >= 1; j-- ) { printf( "%c", tab[ j ] ); } }
Nakierujcie mnie jakoś na prawidłowe rozwiązanie :) [/i] |
|
Piastlis |
» 2014-11-16 02:16:23 Podaruj sobie printf i scanf a naucz się najpierw korzystać z std::cout. |
|
mati1995g |
» 2014-11-16 09:42:57 w sumie też się na programowaniu zbytnio nie znam ale masz to: #include <iostream> #include <string>
using namespace std; int main( int argc, char ** argv ) { string w; cin >> w; for( int k = w.size() - 1; k >= 0; k-- ) { cout << w[ k ]; } return 0; } [ \c pp ] |
|
Piastlis |
» 2014-11-16 10:47:49 Teraz działa.Ale to nie jest ten sam pomysł.
|
|
mati1995g |
» 2014-11-16 12:34:02 Proszę więc to jest program według pomysłu autora : #include <stdio.h> int main() { char c; int x; int i; int j; printf( "Ile liter ma miec slowo?\n" ); scanf( "%d", & x ); int tab[ x ]; char znak; printf( "Podaj slowo\n" ); for( i = 0; i <= x; i++ ) { scanf( "%c", & znak ); tab[ i ] = znak; } printf( "slowo pisane od tylu to :\n" ); for( j = x; j >= 1; j-- ) { printf( "%c", tab[ j ] ); } }
|
|
Piastlis |
» 2014-11-16 12:42:43 Prawie dobrze...Teraz wystarczy zam1ast printf i scanf użyć cout... |
|
Kaikso |
» 2014-11-16 12:53:27 Myślę że to powinno tak wyglądać #include <stdio.h> #include <malloc.h>
int main( void ) { unsigned len; printf( "Podaj dlugosc slowa: " ); scanf( "%u", & len ); char * str = malloc( len + 1 ); printf( "Podaj slowo: " ); scanf( "%*s", len + 1, str ); int i; printf( "Slowo od tylu to: " ); for( i = len; i >= 0; i-- ) printf( "%c", str[ i ] ); printf( "\n" ); free( str ); return 0; }
|
|
Rashmistrz |
» 2014-11-16 13:28:02 Ja bym stworzył pętlę, dwie tablice jak i zmienne. W pierwszej tablicy umieściłbym nasze słowo. Pierwszej zmiennej (od_poczatku) ustawiłbym indeks pierwszego elementu drugiej tablicy, a drugiej (od_konca) indeks ostatniego elementu tablicy z naszym słowem. Następnie w pętli: slowo_odwrocone[ od_poczatku ] = slowo[ od_konca ]; i po każdym obiegu pętli dekrementujemy zmienną "od_konca" i inkrementujemy zmienną "od_poczatku", chociaż możemy od razu to wstawić w instrukcję przypisania: slowo_odwrocone[ od_poczatku++ ] = slowo[ od_konca-- ]; A warunek pętli już sam sobie wymyślisz. :P |
|
« 1 » 2 |