👤

Salut!Ma puteti ajuta va rog la urmatoarea problema va rog?O sa postez si codul meu care rezolva 4 teste din 8.Multumesc!
Cerință
Definește funcția inmulteste, care primește ca parametri 3 șiruri de numere întregi, a, b și rezultat. La finalul execuției, șirul rezultat va conține rezultatul înmulțirii numerelor salvate în a și b. Toate cele 3 șiruri vor respecta formatul descris mai sus.

Semnătură funcție
Numele funcției va fi inmulteste
Funcția va avea 3 parametri de tip întreg: a[], b[] și rezultat[]
Funcția va fi de tip void
Restricții
1 ≤ a[0], b[0] ≤ 1 000
Elementele celor două șiruri (exceptând primul element) sunt numere naturale din intervalul [0, 9] (cifre)
Se garantează că a[a[0]] și b[b[0]] (primele cifre ale celor 2 numere) nu vor avea valoarea 0
Exemplu
a[] = {5, 1, 2, 2, 5, 8} ; b[] = {2, 1, 2}
În urma apelului funcției inmulteste(a, b, rezultat), șirul rezultat[] devine:

rezultat[] = {7, 1, 4, 6, 9, 8, 7, 1}

Codul meu:
#include
using namespace std;

void inmulteste(int a[], int b[], int rezultat[]) {
int c = 0, r = 0, v[100000];
for (int i = 1; i <= 3000; ++i)
rezultat[i] = 0;
for (int i = 1; i <= b[0]; ++i) {
r = i - 1;
for (int j = 1; j <= a[0]; ++j) {
++r;
v[r] = 0;
v[r] = b[i] * a[j];
rezultat[r] = rezultat[r] + v[r];
}
}
for (int i = 1; i <= r; ++i)
++c;
rezultat[0] = c;
int c2;
for (int i = 2; i <= c; ++i) {
if (rezultat[i - 1] >= 10)
rezultat[i] = rezultat[i] + rezultat[i - 1] / 10;
if (i == c)
if (rezultat[c] >= 10) {
c2 = rezultat[c];
rezultat[rezultat[c]] = c2 % 10;
c2 = c2 / 10;
++rezultat[0];
rezultat[rezultat[0]] = c2;
}
}
for (int i = 1; i <= rezultat[0]; ++i)
rezultat[i] = rezultat[i] % 10;
for (int i = 0; i <= rezultat[0]; ++i)
cout << rezultat[i] << " ";
}

int main() {
int a[2000], b[2000], rezultat[4000];
cin >> a[0] >> b[0];
for (int i = 1; i <= a[0]; ++i)
cin >> a[i];
for (int i = 1; i <= b[0]; ++i)
cin >> b[i];
inmulteste(a, b, rezultat);
return 0;
}