C语言将两个长度相同的一维数组中各下标相同的元素相乘,并将结果存放到另一个一维数组中算法代码
int len(int *a){
int i = 0;
while (1){
if (a[i])
i += 1;
else
break;
}
return i;
}
可以通过以下代码实现将两个长度相同的一维数组中各下标相同的元素相乘,并将结果存放到另一个一维数组中:
#include <stdio.h>
void multiply(int arr1[], int arr2[], int len, int result[]) {
for (int i = 0; i < len; i++) {
result[i] = arr1[i] * arr2[i];
}
}
int main() {
int arr1[] = {1, 2, 3, 4, 5};
int arr2[] = {2, 3, 4, 5, 6};
int len = sizeof(arr1) / sizeof(arr1[0]);
int result[len];
multiply(arr1, arr2, len, result);
for (int i = 0; i < len; i++) {
printf("%d ", result[i]);
}
printf("\n");
return 0;
}
解释:
首先定义一个multiply函数,接受两个一维数组arr1和arr2,它们的长度都是len,还有一个存放结果的一维数组result。
在multiply函数中,对于每个下标相同的元素,将它们相乘并存入result数组中。
在主函数中,先定义两个一维数组arr1和arr2,以及它们的长度len。
定义一个存放结果的一维数组result,长度也是len。
调用multiply函数,将arr1、arr2、len和result作为参数传递给它。
遍历result数组并打印结果。
值得注意的是,这里的数组arr1、arr2和result都不需要加上长度参数,因为它们在函数调用时会自动转为指针,所以不需要传递长度参数,而是在函数中通过计算数组长度来进行处理。
使用for循环遍历两个数组每个元素,然后相乘放到第三个数组即可。
#include <stdio.h>
#define N 5
int main(void){
int a[N] ={1,2,3,4,5};
int b[N] ={6,7,8,9,10};
int c[N];
// 遍历数组每个下标
for(int i=0;i<N;i++){
// 将第一个数组和第二个数组下标相同的元素相乘赋值给第三个数组相应下标的元素
c[i]=a[i]*b[i];
}
// 打印结果
printf("结果为:\n");
for(int i=0;i<N;i++){
printf("%d ",c[i]);
}
return 0;
}