Wpis z mikrobloga

#naukaprogramowania
#programowanie
#informatyka
Czy ktoś z bardziej doświadczonych użytkowników mógłby mnie nakierować na właściwy trop?
Najgorzej, że nie można używać bibliotek innych niż iostream. Siedzę już od 18 non stop nad tym i nie mogę znaleźć rozwiązania. Próbowałem robić zagnieżdżonymi funkcjami "for", ale wtedy program robi niewytłumaczalne rzeczy. Gdybym mógł korzystać z biblioteki string, to odnoszę wrażenie, że robota byłaby dawno wykonana. To, że cyfry setek nie można określić za pomocą wzoru też nie pomaga
randomm13 - #naukaprogramowania 
#programowanie 
#informatyka
Czy ktoś z bardziej ...

źródło: comment_1584056519q5Ot4oFriPvFjXB8k7MoXs.jpg

Pobierz
  • 19
  • Odpowiedz
@fizyk20: je już mam napisane w pętli for. Tak naprawdę problem mam tylko w zapisaniu liczb setek bo to cyfry 1-10 oprócz 3, 4, 8 oraz z połączeniem wszystkiego aby działało razem
  • Odpowiedz
@randomm13: Idea imho byłaby taka na całość:

* Mieć duży buffor const char* buf[]
* Pobrać liczbę do zmiennej, sprawdzić ją czy spełnia warunki, jak @fizyk20 zaproponował
* Zapisać do bufforu, tj. cyfra setek na pozycji i, cyfra dziesiątek na pozycji i+1, cyfra jedności na pozycji i+2, a na pozycji i+3 spacja
* I potem to posortować ten buffor (trochę trzeba się napocić, ale wykonalne)
  • Odpowiedz
@randomm13: To po chamsku if. int setki = x / 100; if(setki == 1 || setki == 2 || setki == 5 || setki == 6 || setki == 7 || setki == 9) { cośtam }.

Albo nieco krócej: if(setki != 3 && setki != 4 && setki != 8) { cośtam }.
  • Odpowiedz
@luigi_pl: Po co sortować? W tym wypadku prościej przejechać jedną pętlą for (@randomm13 zastanawiam się, czemu piszesz o zagnieżdżonych) od 100 do 999 (wszystkie liczby trzycyfrowe), sprawdzać czy cyfry spełniają warunki i jak tak, to wypisać liczbę. Z automatu będą w kolejności rosnącej, bo przelatujemy zakres w takiej kolejności.
  • Odpowiedz
@fizyk20: no to była pierwsza moja myśl. Tylko nie mam pojęcia jak sprawdzić konkretne cyfry w liczbach bez stringa. Taby też raczej mi odpadają, bo to jest dział "pętle"
  • Odpowiedz
@randomm13: To właśnie napisałem Ci wyżej, ale pisałeś, że już coś takiego masz.

Dla liczb trzycyfrowych zadziała to:

int cyfra_setek = x / 100;
int cyfra_dziesiatek = (x % 100) / 10;
int cyfra_jednosci = x % 10;
  • Odpowiedz
@fizyk20: ze względu na to, że brało mi z pętli for tylko ostatni wynik. Aby temu zaradzić stwierdziłem, że zrobię zagnieżdżone, aby mieć dostęp do każdej kolejnej generowanej liczby. Tyle, że to nieco mnie przerosło.
  • Odpowiedz