Ĺadny brzuch
Witam mam problem z pewnym zadankim związanym z programowaniem, zadanie to chciałbym aby było zrobione w najprostszy sposób bez użycia tabeli treśc jego brzmi:
Wczytaj łańcuch znaków. Zamień słowa kolejnością tak aby pierwsze było drugie, drugie pierwsze, trzecie czwarte itd.
mój pomysł wygląda następująco niestety nie działa:/
#include<stdio.h> #include<conio.h> #include<ctype.h> #include<string.h> int main() { int i, j; char lancuch[10]; cout<< "podaj lancuch: "; cin>>lancuch; for(i=0; i<strlen(lancuch); i+=2) { for(j=1; j<strlen(lancuch); j=i+1) { if(lancuch[i]==i) lancuch[i]=lancuch[j]; else if(lancuch[j]==j) lancuch[j]=lancuch[i]; } } printf("przestawione litery; %s", lancuch); return 0; }
moj blad
ja takze nie potrafie widac czytac do konca zadan :bangin:
co nie zmienia faktu ze zadanie i tak nie jest prezycyjnie opisane..
Użytkownik fernandez edytował ten post 29 marzec 2009, 21:47
NA to wygląda że nie umiem ani go zrozumieć ani zrobić:/
W ten sposób? 1-2-3-4-5-6... -> 2-1-4-3-6-5... ?
na to wyglada ze tak cyrkiel
co musisz zrobic, to pamietac dwa indeksy w lancuchu: pierwsza litera pierwszego slowa i pierwsza drugiego (oczywiscie to w petli)
i potem w zaleznosci co ma byc zamieniane wczytujesz slowa zacyznajac od konretnego indeksu
1. Wczytujesz pierwsze słowo (wszystkie znaki, aż do spacji) do pierwszej zmiennej.
2. Wczytujesz drugie słowo do drugiej zmiennej.
3. Wypisujesz drugie słowo.
4. Wypisujesz pierwsze słowo.
5. Wracasz do punktu 1 i powtarzasz operację, aż skończą się dane.
Nie musisz wczytywać całej linii do zmiennej i operować na niej. Możesz pobierać dane ze standardowego wejścia, przetwarzać je i wyrzucać na standardowe wyjście.
I tu mam problem bo nie wiem jak to zapisac aby liczył do spacji, nie wiem jak zdeklarowac spacje
while (pobrany_znak != ' ')
while (pobrany_znak != 32)
32 to kod ASCII spacji.
Dzięki bede próbował go stworzyć
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Wczytaj łańcuch znaków. Zamień słowa kolejnością tak aby pierwsze było drugie, drugie pierwsze, trzecie czwarte itd.
mój pomysł wygląda następująco niestety nie działa:/
#include<stdio.h> #include<conio.h> #include<ctype.h> #include<string.h> int main() { int i, j; char lancuch[10]; cout<< "podaj lancuch: "; cin>>lancuch; for(i=0; i<strlen(lancuch); i+=2) { for(j=1; j<strlen(lancuch); j=i+1) { if(lancuch[i]==i) lancuch[i]=lancuch[j]; else if(lancuch[j]==j) lancuch[j]=lancuch[i]; } } printf("przestawione litery; %s", lancuch); return 0; }
moj blad
ja takze nie potrafie widac czytac do konca zadan :bangin:
co nie zmienia faktu ze zadanie i tak nie jest prezycyjnie opisane..
Użytkownik fernandez edytował ten post 29 marzec 2009, 21:47
NA to wygląda że nie umiem ani go zrozumieć ani zrobić:/
W ten sposób? 1-2-3-4-5-6... -> 2-1-4-3-6-5... ?
na to wyglada ze tak cyrkiel
co musisz zrobic, to pamietac dwa indeksy w lancuchu: pierwsza litera pierwszego slowa i pierwsza drugiego (oczywiscie to w petli)
i potem w zaleznosci co ma byc zamieniane wczytujesz slowa zacyznajac od konretnego indeksu
1. Wczytujesz pierwsze słowo (wszystkie znaki, aż do spacji) do pierwszej zmiennej.
2. Wczytujesz drugie słowo do drugiej zmiennej.
3. Wypisujesz drugie słowo.
4. Wypisujesz pierwsze słowo.
5. Wracasz do punktu 1 i powtarzasz operację, aż skończą się dane.
Nie musisz wczytywać całej linii do zmiennej i operować na niej. Możesz pobierać dane ze standardowego wejścia, przetwarzać je i wyrzucać na standardowe wyjście.
I tu mam problem bo nie wiem jak to zapisac aby liczył do spacji, nie wiem jak zdeklarowac spacje
while (pobrany_znak != ' ')
while (pobrany_znak != 32)
32 to kod ASCII spacji.
Dzięki bede próbował go stworzyć