Problem z trywialnym programem [Ansi C]

?o?-i?ek
Użytkownik
Użytkownik
Posty: 49
Rejestracja: 20 maja 2009, o 17:57
Płeć: Mężczyzna
Podziękował: 8 razy

Problem z trywialnym programem [Ansi C]

Post autor: ?o?-i?ek »

Witam,
Chciałbym napisać program zapisujący liczbę np 1234
w tablicy w ten sposób, że

t[0]=4
t[1]=3
t[2]=2
t[3]=1

Wiem, ze stosując operacje mod jestem w stanie "powyciągać" wszystkie te cyfry.

I tak po zastosowaniu 1234 mod 10 dostaje 4
po zastosowaniu 1234 mod 100 dostaje 34 i dalej nie wiem co zrobić.

Proszę o pomoc w ustaleniu wzoru ogólnego dla tego problemu

Pozdrawiam serdecznie i z góry dziękuję za każdą odpowiedź
Pawelek91
Użytkownik
Użytkownik
Posty: 56
Rejestracja: 23 lis 2008, o 14:54
Płeć: Mężczyzna
Lokalizacja: Wyszogród
Podziękował: 1 raz
Pomógł: 4 razy

Problem z trywialnym programem [Ansi C]

Post autor: Pawelek91 »

1. Pętelka dopóki twoja liczba istnieje
2. w której będziesz wyciągał resztę z 10, czyli cyfrę i dalej musisz zmniejszyć tę liczbę, czyli podzielić przez 10;
3. wypisać
4. zakończyć
5. robić kolejne zadanko
?o?-i?ek
Użytkownik
Użytkownik
Posty: 49
Rejestracja: 20 maja 2009, o 17:57
Płeć: Mężczyzna
Podziękował: 8 razy

Problem z trywialnym programem [Ansi C]

Post autor: ?o?-i?ek »

To nie może tak być bo po zastosowaniu 1234 mod 10 dostaje 4
po zastosowaniu 1234 mod 100 dostaje 34, gdy 34 podzielę na 10 dostanę 3,4
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Problem z trywialnym programem [Ansi C]

Post autor: Afish »

1. Modulujesz liczbę przez 10. Tym sposobem dostajesz cyfrę.
2. Zmniejszasz liczbę poprzez podzielenie całkowite liczby przez 10. Tym sposobem obcinasz ostatnią cyfrę liczby.
3. Jeżeli liczba nie jest równa 0, idziesz do punktu pierwszego. W przeciwnym wypadku fajrant.
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

Problem z trywialnym programem [Ansi C]

Post autor: smiechowiec »

Idea jest taka, że po wyliczeniu mod musisz zmniejszyć liczbę o 10 razy

Kod: Zaznacz cały

#include <stdio.h>
#define MaxLiczbaCyfr 10
int main() {
int Liczba = 1234;
int t[MaxLiczbaCyfr];
int Licznik;
for (Licznik = 0; Liczba > 0; Licznik++) {
  t[Licznik] = Liczba % 10;
	printf("t[%d]=%d
", Licznik, t[Licznik]);
  Liczba /= 10;
}
    return 0;
}
?o?-i?ek
Użytkownik
Użytkownik
Posty: 49
Rejestracja: 20 maja 2009, o 17:57
Płeć: Mężczyzna
Podziękował: 8 razy

Problem z trywialnym programem [Ansi C]

Post autor: ?o?-i?ek »

Dzielenie całkowite przez 10 no faktycznie, ma sens
Dziękuję Panowie
ODPOWIEDZ