. Să se scrie o aplicaţie C/C++ în care se alocă dinamic memorie pentru n numere
întregi (validati n prin reintroducerea valorii), numere ce vor fi citite de la tastatură.
Să se scrie funcţia care extrage radicalul din fiecare număr intreg valid (>0) şi
stochează valorile obţinute într-un alt tablou alocat dinamic. Să se afişeze numerele
iniţiale şi valorile din tabloul nou format. Eliberaţi la sfârşit memoria alocată.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
// Citeste numarul de numere
int n;
cout << "Introduceti numarul de numere: ";
cin >> n;
// Aloca dinamic memorie pentru tabloul de numere
int* numbers = new int[n];
// Citeste numerele de la tastatura
cout << "Introduceti numerele: " << endl;
for (int i = 0; i < n; i++) {
cin >> numbers[i];
}
// Aloca dinamic memorie pentru tabloul de radicale
int* radicals = new int[n];
// Calculati radicalul pentru fiecare numar valid și adăugați-l la tabloul de radicați
int radicals_count = 0;
for (int i = 0; i < n; i++) {
if (numbers[i] > 0) {
radicals[radicals_count] = sqrt(numbers[i]);
radicals_count++;
}
}
// Afișați numerele inițiale și valorile din tabloul de radicați
cout << "Numerele inițiale: ";
for (int i = 0; i < n; i++) {
cout << numbers[i] << " ";
}
cout << endl;
cout << "Radicalii numerelor: ";
for (int i = 0; i < radicals_count; i++) {
cout << radicals[i] << " ";
}
cout << endl;
// Eliberați memoria alocată pentru ambele tablouri
delete[] numbers;
delete[] radicals;
return 0;
}
Explicație:
Această aplicație citește prima dată numărul de numere ce trebuie citite de la tastatură. Apoi, alocă dinamic memorie pentru un tablou de numere și citește numerele de la tastatură. După aceea, alocă dinamic memorie pentru un alt tablou și calculați radicalul pentru fiecare număr valid și adăugați-l la tabloul de radicați. La sfârșit, afișează numerele inițiale și valorile din tabloul de radicați și eliberează memoria alocată pentru ambele tablouri.