MitS Napisano Listopad 1, 2007 Zgłoszenie Share Napisano Listopad 1, 2007 witam, mam dość duży problem dotyczący dodawania liczb w tablicy, a mianowicie: mam sobie tablice tab[7] = {2, 4, 15, 25, 33, 3 ,15} i nie wiem jak zrobić tak by liczby, które są > 9 przekladały swoją liczbę dziesiątek na liczbę obok (po lewej stronie) np. tab[7] = {2, 4, 15, 25, 33, 3 ,15} wynik: 2 5 7 8 3 4 5 (dziesiątki z danej liczby zostały przeniesione na liczbę stojącą po lewej np. 3 15 <=> 4 5). macie jakiś pomysł jak to mozna napisać w C++ ?? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
matlas Napisano Listopad 1, 2007 Zgłoszenie Share Napisano Listopad 1, 2007 liczby w tablicy maja jakis zakres tzn < 100 ? czy tez 3 lub wiecej cyfrowe? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MitS Napisano Listopad 1, 2007 Autor Zgłoszenie Share Napisano Listopad 1, 2007 ok pytania nie było ... poradziłem sobie ... jak by ktoś miał podobny problem to ja to rozwiązałęm tak: int n[4] = {4, 6, 14, 10}; int t[4] = {0}; for(int i=0;i<4; i++){ t[i] = n[i]; if(t[i] > 9){ if(t[i] % 10 == 0){ t[i-1] += (t[i]/10); t[i] = 0; } else{ t[i-1] += (t[i]/10); t[i] = t[i] - ((t[i]/10) * 10); } } } for(int i=0; i<4; i++) cout << t[i]; cout << endl; Pozdro Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MitS Napisano Listopad 1, 2007 Autor Zgłoszenie Share Napisano Listopad 1, 2007 mają zakres zakresem jest 500000 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
wyksztalcioch Napisano Listopad 1, 2007 Zgłoszenie Share Napisano Listopad 1, 2007 int main(){ int tab[7] = {2, 4, 15, 25, 33, 3 ,15}; int licel=sizeof(tab)/sizeof(int); licel--; int pomoc=0; for(int i=licel;i>=0;i--){ tab[i]+=pomoc; pomoc=tab[i]/10; tab[i]=tab[i]%10; } return 0;} Dla liczb mniejszych niż 100 mam coś takiego Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MitS Napisano Listopad 1, 2007 Autor Zgłoszenie Share Napisano Listopad 1, 2007 a takie pytanie co to za roznica czy liczba w tym wypadku bedzie miala 99 czy 1150 ?? przeciez to miesci sie ciagle w int ? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
wyksztalcioch Napisano Listopad 1, 2007 Zgłoszenie Share Napisano Listopad 1, 2007 a takie pytanie co to za roznica czy liczba w tym wypadku bedzie miala 99 czy 1150 ?? przeciez to miesci sie ciagle w int ? Dla 1150 trzeba się zatroszczyć by skopiowało samo 5 dalej a nie 115... Pełny kod mojego programu dla całego zakresu: #include <iostream> using namespace std; int main(){ int tab[7] = {2, 4, 15, 225, 33, 3 ,15}; int licel=sizeof(tab)/sizeof(int); licel--; int dziesiatki=0, jednosci=0, reszta=0; for(int i=licel;i>=0;i--){ tab[i]+=dziesiatki; dziesiatki=(tab[i]%100)/10; tab[i]=(tab[i]/100)*10+tab[i]%10; cout<<tab[i]<<endl; } return 0;} Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MitS Napisano Listopad 1, 2007 Autor Zgłoszenie Share Napisano Listopad 1, 2007 oooo super dzięki bo ten moj kod to nie na wszystko dobrze działał a twoj jest bomba Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
jjj Napisano Listopad 2, 2007 Zgłoszenie Share Napisano Listopad 2, 2007 Dodałbym pytanie kontrolne, bez niego problem jest nie do końca jasny: liczba dziesiątek przesuwana do lewej komórki dotyczy stanu sprzed czy po modyfikacji uzyskanej przez przeniesienie z prawej komórki? Sterując kierunkiem przebiegu pętli dostaniesz albo pierwszy, albo drugi wariant. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się