online: 8; azi: 687; total: 52693 Manual clasa a ix a - Implementarea structurilor de date - Structuri de date

Probleme Rezolvate



Manual clasa a IX a

Implementarea structurilor de date

Structuri de date

Se consideră doi vectori cu elemente numere întregi a şi b, cu lungimea n. Lungimea vectorilor şi elementele vectorulu i a se citesc de la tastatură . I n vectorul b în elementul b[ i ] se calculează suma cifrelor elementului a[ i ]. Să se afişeze numărul care are cea mai mare sumă a cifrelor şi al câtelea număr citit a fost . Dacă sunt mai multe numere care au suma cifrelor maximă , să se afişeze numărul de ordine la citire pentru fiecare dintre ele .
Pentru a rezolva această problemă, vom citi elementele vectorului a și vom calcula suma cifrelor fiecărui element. Vom folosi o variabilă max_sum pentru a reține cea mai mare sumă a cifrelor găsită până acum și o variabilă max_index pentru a reține indicele (numărul de ordine la citire) al elementului cu suma cifrelor maximă.
Vom parcurge vectorul b și vom compara suma cifrelor fiecărui element cu max_sum . Dacă suma este mai mare, vom actualiza max_sum cu noua valoare și vom actualiza și max_index cu indicele (numărul de ordine la citire) al elementului curent. Dacă suma este egală cu max_sum , vom afișa și numărul de ordine la citire pentru elementul curent.
În cele din urmă, vom afișa numărul care are cea mai mare sumă a cifrelor și numerele de ordine la citire ale tuturor elementelor care au această sumă.
# include < iostream >
using namespace std ;
int main () {
int n, max_sum = 0 , max_index = 0 ;
cin >> n;
int a[n], b[n];
// Citirea vectorului a și calcularea sumei cifrelor
for ( int i = 0 ; i < n; i++) {
cin >> a[i];
int sum = 0 , temp = a[i];
while ( temp > 0 ) {
sum += temp % 10 ;
temp /= 10 ;
}
b[i] = sum ;
}
// Găsirea elementului cu suma cifrelor maximă
for ( int i = 0 ; i < n; i++) {
if (b[i] > max_sum ) {
max_sum = b[i];
max_index = i;
} else if (b[i] == max_sum ) {
cout << "Elementul " << i + 1 << " are aceeasi suma de cifre ca elementul " << max_index + 1 << endl ;
}
}
// Afișarea elementelor cu suma cifrelor maxima
cout << "Elementul " << max_index + 1 << " are suma cifrelor maxima (" << max_sum << ")" << endl ;
for ( int i = 0 ; i < n; i++) {
if (b[i] == max_sum ) {
cout << "Elementul " << i + 1 << " are aceeasi suma de cifre" << endl ;
}
}
return 0 ;
}

Acest cod citește mai întâi lungimea vectorului n și apoi elementele vectorului a. Pentru fiecare element, se calculează suma cifrelor și se stochează în vectorul b.
Apoi, se parcurge vectorul b și se găsește elementul cu suma cifrelor maximă. Dacă se găsesc mai multe elemente cu aceeași sumă, se afișează numărul de ordine la citire pentru fiecare dintre ele.
În cele din urmă, se afișează elementul cu suma cifrelor maxima și numerele de ordine la citire ale