Cum as putea ca din numarul 43598, sa-l aseze pe pozitii de vectori, asadar,
v[0] = 4, v[1] = 3, v[2] = 5 s.a.m.d., iar la final sa adun toate valorile, si sa-mi dea doar o singura valoare, 4 + 3 + 5 + 9 + 8 = 29.
Multumesc,
Răspunsuri la întrebare
Răspuns de
3
1. Dacă ești sigur că într-adevăr este absolută nevoie să stochezi astfel, în această ordine, și prin acest procedeu numărul într-un vector, atunci:
a) Va trebui să inversezi numărul cu un while
b) Va trebui, cu un alt while, să tot iei ultima cifră și să o pui în vector
Codul ar arăta așa
int a[20], k = 0;
int n = 43598, n2 = 0;
while(n > 0){
n2 = n2*10 + n%10;
n = n/10;
}
n = n2;
while(n > 0){
a[k] = n%10;
n = n/10;
k++;
}
Primul while, dacă vei încerca să îl înțelegi, va funcționa astfel
n2 = 0*10 + 8 = 8
n2 = 8*10 + 9 = 80 + 9 = 89
n2 = 89*10 + 5 = 890 + 5 = 895
... etc, și în final va ieși numărul inversat
Iar al doilea while, ia numărul inversat, și face cam la fel, doar că acum pune direct în vector.
Presupun că la sumă te descurci. :))
2. Dacă nu ești sigur de ordine, poți stoca, ce e mai recomandat, în ordine inversă, adică a[0] să fie prima cifră - cea a unităților, a[1] cifra zecilor, etc. Și în acest caz, aplici doar al doilea while, nu mai trebuie inversat numărul.
3. Dacă ai de calculat doar suma, atunci nu ai nevoie de un vector, faci un while așa:
int s = 0;
while(n > 0){
s = s + n%10;
n = n/10;
}
cout<<s;
a) Va trebui să inversezi numărul cu un while
b) Va trebui, cu un alt while, să tot iei ultima cifră și să o pui în vector
Codul ar arăta așa
int a[20], k = 0;
int n = 43598, n2 = 0;
while(n > 0){
n2 = n2*10 + n%10;
n = n/10;
}
n = n2;
while(n > 0){
a[k] = n%10;
n = n/10;
k++;
}
Primul while, dacă vei încerca să îl înțelegi, va funcționa astfel
n2 = 0*10 + 8 = 8
n2 = 8*10 + 9 = 80 + 9 = 89
n2 = 89*10 + 5 = 890 + 5 = 895
... etc, și în final va ieși numărul inversat
Iar al doilea while, ia numărul inversat, și face cam la fel, doar că acum pune direct în vector.
Presupun că la sumă te descurci. :))
2. Dacă nu ești sigur de ordine, poți stoca, ce e mai recomandat, în ordine inversă, adică a[0] să fie prima cifră - cea a unităților, a[1] cifra zecilor, etc. Și în acest caz, aplici doar al doilea while, nu mai trebuie inversat numărul.
3. Dacă ai de calculat doar suma, atunci nu ai nevoie de un vector, faci un while așa:
int s = 0;
while(n > 0){
s = s + n%10;
n = n/10;
}
cout<<s;
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Geografie,
9 ani în urmă
Matematică,
9 ani în urmă
Chimie,
9 ani în urmă