此代码要求用户填写矩阵,然后调用 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/