Urgent!!Daca ma poate ajuta cineva la aceasta problema cu cozi.
Să se creeze o coada cu numerele întregi preluate de la tastatura. Se cere să se adauge după fiecare număr din coada cifra de control a numărului respectiv. Să se afişeze conţinutul cozii înainte şi după modificare, fiecare afişare pe câte un rând (cifra de control pentru 1468 este 1 (1+4+6+8=19; 1+9=10; 1+0=1)).
Răspunsuri la întrebare
#include <iostream>
#include <queue>
using namespace std;
//Algoritm rapid pentru cifra de control
int cifra_control(int n) {
if (n == 0) return 0;
int c = n % 9;
if (n == 0) return 9;
else return c;
}
//Fucntie pentru afisarea cozii
void print_queue(queue<int> q) {
while (!q.empty()) {
//Afisare element capul cozii
cout << q.front() << " ";
//Stergere element din capul cozii
q.pop();
}
}
int main() {
int n;
int curent;
queue<int> coada;
cout << "Nr elemente : ";
cin >> n;
for (int i = 0; i < n; i++) {
cin >> curent;
coada.push(curent);
}
cout << "\nCoada initiala : ";
print_queue(coada);
//Adaugare dupa fiecare element cifra de control
for (int i = 0; i < n; i++) {
//Calculeaza CC pentru primul element din coada
int cc = cifra_control(coada.front());
//Inseareaza in spatele cozii elementul alaturi cu cifra de control
coada.push(coada.front());
coada.push(cc);
//Sterge elementul din capul cozii
coada.pop();
}
cout << "\nCoada prelucrata : ";
print_queue(coada);
}