gpt4 book ai didi

c - 将多维数组作为指针传递给函数

转载 作者:行者123 更新时间:2023-11-30 19:10:48 24 4
gpt4 key购买 nike

我必须将两个数组(尺寸为 5X4 的 A 和 B)传递给名为 FUNCTION_1 和 FUNCTION_2 的两个函数。数组的列和行都应作为指针传递。 FUNCTION_1 将获取 A 数组的每个元素并计算 A( 中每个元素的质因数之和(在另一个名为 sumPrime 的函数的帮助下),然后将这些和存储在数组 B 中。FUNCTION_2 必须打印 A 的两个元素和 B 数组。(普通数字数组,素因数和数组)。程序中添加了一些现在并不重要的内容,但为了清晰起见,我也将展示它们。

#include <stdio.h>
#include <stdlib.h>
#define ROW 5
#define COL 4
# include <math.h>
int sumPrime(int number){
int factor = 2;
int sum=0;

while(1!=number){
if(number%factor==0){
number /= factor;
sum+=factor;

factor = 2;
continue;
}
factor++;
}

return sum;
}
int FUNCTION_1(int *a[][20],int *b[][20],int row, int col){
int c,d;
for(c=0;c<row;c++){
for(d=0;d<col;d++){
b[c][d]=sumPrime(a[c][d]);
return b[c][d];
}
}


}
void FUNCTION_2(int *x[][20],int *y[][20],int rows, int cols){
printf(" \n A matrix is :\n");
int e,f;
for(e=0;e<rows;e++){
for(f=0;f<cols;f++){
printf("A[%d][%d] is %d\n",e,f,x[e][f]);



}
}
printf("\n B matrix is:\n");
for(e=0;e<rows;e++){
for(f=0;f<cols;f++){
printf("A[%d][%d] is %d\n",e,f,FUNCTION_1(x,rows,cols,y,rows,cols));



}
}
}






int main(){


int A[ROW][COL]={0};
int B[ROW][COL]={0};
int x=1;
int i;
int j;

for(i=0;i<ROW;i++){

for(j=0;j<COL;j++){
A[i][j]=x;
x=x+2;

}
}
printf("%d",A[0][0]);




return 0;

}

当尝试执行 FUNCTION_1 或 FUNCTION_2 时,甚至在定义函数时,我会遇到很多错误。定义A矩阵或者素函数都没有问题!帮助!!

最佳答案

你对矩阵的定义是错误的..使用 :func(int* a[20] , int cols)在这种情况下,您将有 20 行,或者func(int a[][20],int rows)如果是固定值,则为列定义一些宏。

关于c - 将多维数组作为指针传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40958314/

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