c - 如何使用void函数操作两个数组

标签 c

此代码要求用户填写矩阵,然后调用 void 函数将它们相加。我有一个 www.ideone.com 我也无法更改大部分代码。需要所有这些定义语句和一个 void 函数。

#include <stdio.h>
#include <math.h>

#define NCOL1 2
#define NCOL2 2
#define NROW1 2
#define NROW2 2
#define NCOL3 2
#define NROW3 2

int main (void)
{
    //Initiate variables
    double a, b;
    int    i, j;
    void   addarray(double a, double b);
    double ans;
    double arr1[NCOL1][NROW1], arr2[NCOL2][NROW1];

    //Ask user to enter numbers for the first matrix
    printf("Please enter numbers for Matrix 1 :\n ");
    for (i = 0; i < NCOL1; i++) {
        for (j = 0; j < NROW1; j++) {
            scanf("%lf", &arr1[i][j]);
        }
    }

    //Ask user to enter numbers for the second matrix
    printf("Please enter numbers for Matrix 2 :\n ");
    for (i = 0; i < NCOL2; i++) {
        for (j = 0; j < NROW2; j++) {
            scanf("%lf", &arr2[i][j]);
        }
    }

    //Iterate through void function and print out result
    for (i = 0; i < NCOL3; i++) {
        for (j = 0; j < NROW3; j++) {
            addarray(arr1[i][j], arr2[i][j]);
            printf("%lf", ans);
        }
    }
    return 0;
}

void addarray (double a, double b)
{
    int i,j;
    double arrsum[NCOL3][NROW3];
    for (i = 0; i < NCOL3; i++) {
        for (j = 0; j < NROW3; j++) {
            arrsum[i][j] = a + b;
        }
    }
}

最佳答案

你的问题是什么?感谢您提供代码,但不清楚您到底想做什么,或者代码目前做错了什么。请更新您的问题,详细说明您要完成的工作以及您需要帮助的具体内容。

一般建议:如果您想使用函数操作数组,那么该函数需要将指向数组的指针作为参数。

此外,您的 addarray() 函数仅修改数组 arrsum,它位于该函数的范围内。由于该函数在初始化其元素后从不对 arrsum 执行任何操作,因此整个函数本质上是空操作。

关于c - 如何使用void函数操作两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10323848/

相关文章:

c - 将编译代码与 NASM 和 MSVC 链接时 Unresolved reference

CreateFile() 可以在两个不同的线程中同时打开一个文件吗

c - 当信号到达时警报停止

java - Android 上的 JNI,如何将 int 从 c 传递到 java

C 编程术语

c - 须藤环境变量

c - OpenMP 有序子句

c - 排序 :multi-character tab in C error

c - 分配给指针时从不兼容的指针类型警告中初始化

c - C代码怎么写?