C语言将两个长度相同的一维数组中各下标相同的元素相乘,并将结果存放到另一个一维数组中算法代码

C语言将两个长度相同的一维数组中各下标相同的元素相乘,并将结果存放到另一个一维数组中算法代码

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7574172
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:C语言一维数组的最大值和最小值依次放入一个新的数组中,依次类推
  • 你还可以看下c语言参考手册中的 c语言-内存模型与数据竞争
  • 除此之外, 这篇博客: c语言实现判断数组内任意两个数的和是否等于给定的目标值,暴力算法中的 判断数组长度函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • int len(int *a){
        int i = 0;
        while (1){
            if (a[i])
                i += 1;
            else
                break;
        }
        return i;
    }
    
  • 您还可以看一下 李飞老师的C语言开发之数据结构与算法一课程中的 静态数组实现栈小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    可以通过以下代码实现将两个长度相同的一维数组中各下标相同的元素相乘,并将结果存放到另一个一维数组中:

    #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;
    }
    

    解释:

    1. 首先定义一个multiply函数,接受两个一维数组arr1和arr2,它们的长度都是len,还有一个存放结果的一维数组result。

    2. 在multiply函数中,对于每个下标相同的元素,将它们相乘并存入result数组中。

    3. 在主函数中,先定义两个一维数组arr1和arr2,以及它们的长度len。

    4. 定义一个存放结果的一维数组result,长度也是len。

    5. 调用multiply函数,将arr1、arr2、len和result作为参数传递给它。

    6. 遍历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;
    
} 

img