gpt4 book ai didi

c++ - 2个数组相乘的函数

转载 作者:太空宇宙 更新时间:2023-11-04 13:34:19 24 4
gpt4 key购买 nike

我需要创建一个函数,将 2 个数组相乘并将结果放入第三个数组中,我将使用另一个“打印函数”打印该数组。所以如果我输入 array11: 5, 10, 20;和 array22: 1, 2;我应该得到这个结果:result_array:5, 10, 10, 20, 20, 40。因此,第一个数组中的每个元素都与第二个数组中的每个元素相乘,并存储在第三个数组中。

但我没有得到预期的结果。相反,我得到了一些随机数。你能帮我弄清楚我做错了什么吗?

  • array11array22 是前2个数组
  • array_result 是结果数组
  • dim1dim2 是前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
}

最佳答案

k 永远不会递增,因此您一直将相乘数组的值存储在 array_result 的第一个元素中。你可以试试:

array_result[k++] = array11[i] * array22[j];

这将使用 k 的值,然后递增它。您还应该考虑像这样默认初始化您的 array_result:

int array_result[dim3] = {};//将所有值初始化为 0

这意味着您不会获得随机数,您会看到所有数字,但第一个数字是 0。

关于c++ - 2个数组相乘的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30226865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com