我需要做一個函數,乘以2陣列,並把結果放在第三個數組,我將打印使用另一個「打印功能」。 所以,如果我輸入array11:5,10,20;和array22:1,2;我應該得到這個結果: result_array:5,10,10,20,20,40.所以第一個數組中的每個元素都與第二個數組中的每個元素相乘並存儲在第三個數組中。功能乘以2陣列
但我沒有得到預期的結果。相反,我得到一些隨機數字。 你能幫我弄清楚我做錯了什麼?
array11
和array22
是第2個陣列array_result
是所得陣列dim1
和dim2
是第2個陣列dim3
的尺寸在第三陣列是的尺寸計算外 功能是這樣的:dim3 = dim1 * dim2;
#include <iostream>
using namespace std;
void remplir(int array[], int dim);
void aficher(int array[], int dim);
void multiplier(int array11[], int array22[], int dim1, int dim2, int dim3);
int main() {
int dim1 = 0, dim2 = 0, dim3;
cout << "La dimension de la 1ere table?" << endl;
cin >> dim1;
while (dim1 > 20) {
cout << "La dimension maximum est 20! Reessayez!" << endl;
cin >> dim1;
}
int array1[dim1];
remplir(array1, dim1);
aficher(array1, dim1);
cout << "La dimension de la 2eme table?" << endl;
cin >> dim2;
while (dim2 > 20) {
cout << "La dimension maximum est 20! Reessayez!" << endl;
cin >> dim2;
}
int array2[dim2];
remplir(array2, dim2);
aficher(array2, dim2);
cout<<"////////////////////////////////////////////////////////"<<endl;
dim3 = dim1 * dim2;
multiplier(array1, array2, dim1, dim2, dim3);
cout << "dim3 = " << dim3 << endl;
return 0;
}
void remplir(int array[], int dim) {
int i = 0;
for (i = 0; i < dim; i = i + 1) {
cout << "Entrez la case numero " << i << endl;
cin >> array[i];
}
}
void aficher(int array[], int dim) {
int i = 0;
for (i = 0; i < dim; i = i + 1) {
cout << "indice " << i << " = " << array[i] << endl;
}
}
void multiplier(int array11[], int array22[], int dim1, int dim2, int dim3) {
int i, j, k = 0;
int resultat[dim3]; //resulting array
for (i = 0; i <= dim1 - 1; i = i + 1) {
for (j = 0; j <= dim2 - 1; j = j + 1) {
resultat[k++] = array11[i] * array22[j];
}
}
aficher(resultat, dim3); //function that prints the resulting array
}
你能不能給我們輸出的樣本? – Levi