• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z zadaniem Język C

0 głosów
394 wizyt
pytanie zadane 8 września 2022 w C i C++ przez benny13 Obywatel (1,150 p.)

Witam, mam problem z następującym zadaniem. Mam wypisać, co wyświetli się w wyniku wykonania programu, natomiast niestety nie mam pojęcia, jak się do tego zabrać.

#include <stdio.h>
int main(void){
char *w="f-g-e-t-s", *x=w;
while(*++x);
do
if(*--x!='-'){
putchar(*x);
putchar('|');
puts(x);
}
while(x-w);
return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 8 września 2022 przez Oscar Nałogowiec (29,420 p.)
wybrane 8 września 2022 przez benny13
 
Najlepsza

Na poczatku masz dwa wskaźniki tekstowe (char *) - jeden jawnie wskazuje na początek literału znakowego, drugi też przyjmuje tą wartość.

Potem, w linii 4 pętla while przestawia wskaźnik x na koniec napisu - na znak końca (\0).

Niżej od linii 5, w pętli do-while wskaźnik jest cofany i jeśli natrafi na znak różny od '-' wypisywane są kolejno - napotkany znak, pionowa kreska, i pierwotny napis poczynając od wskazywanego miejsca (czyli końcowy fragment napisu). W sumie wychodzi:

s|s
t|t-s
e|e-t-s
g|g-e-t-s
f|f-g-e-t-s

 

komentarz 8 września 2022 przez benny13 Obywatel (1,150 p.)
Dziękuję :)

Podobne pytania

0 głosów
1 odpowiedź 640 wizyt
pytanie zadane 10 grudnia 2020 w Inne języki przez shaye.servando Nowicjusz (170 p.)
+2 głosów
7 odpowiedzi 14,134 wizyt
pytanie zadane 14 lipca 2020 w Systemy operacyjne, programy przez ordmeg Nowicjusz (180 p.)
0 głosów
0 odpowiedzi 787 wizyt
pytanie zadane 14 grudnia 2022 w C i C++ przez Wikus841 Początkujący (370 p.)

93,742 zapytań

142,680 odpowiedzi

323,299 komentarzy

63,328 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...