Skocz do zawartości

[c++]dodawanie Liczb W Tablicy


MitS

Rekomendowane odpowiedzi

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

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

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

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

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

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ę
×
×
  • Dodaj nową pozycję...