gpt4 book ai didi

c - 使用函数在 C 中应用 2 个矩阵 3x3 中的 Hadamard 产品

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

我尝试使用两个 int 来分隔此代码。

#include <stdio.h>
#include <conio.h>
int main(){
int a[3][3],b[3][3],c[3][3],i,d,e;
puts("multiplica 2 matrices de 3x3");
puts("Matriz A");
for (int i=0; i<3; i++){
for (int d=0; d<3; d++){
printf("introdusca el dato %d,%d\t",i+1,d+1);
scanf ("%d",&a[i][d]);
}
}
puts("Matriz B");
for (int i=0; i<3; i++){
for (int d=0; d<3; d++){
printf("introdusca el dato %d,%d\t",i+1,d+1);
scanf ("%d",&b[i][d]);
}
}
for (int i=0; i<3; i++){
for (int d=0; d<3; d++){
c[i][d]=a[i][d]*b[i][d];
}
}
for (int i=0; i<3; i++){
printf("| ");
for (int d=0; d<3; d++){
printf("%4.2d",c[i][d]);
}
printf("|");
printf("\n");
}
getch();
return 0;
}

void它工作得很好,但当我尝试使用 int 时遇到了麻烦给我随机数,而不是最后一个代码所期望的实际乘法。

#include <stdio.h>
#include <conio.h>
int mult(int x[3][3], int y[3][3]){
int c[3][3];
for (int k=0; k<3; k++){
for (int l=0; l<3; l++){
c[k][l]=x[k][l]*y[k][l];
}
}
return c[3][3];
}
int main (){
int a[3][3],b[3][3],i,j;
puts("multiplica 2 matrices de 3x3");
puts("Matriz A");
for (int i=0; i<3; i++){
for (int j=0; j<3; j++){
printf("introdusca el dato %d,%d\t",i+1,j+1);
scanf ("%d",&a[i][j]);
}
}
puts("Matriz B");
for (int i=0; i<3; i++){
for (int j=0; j<3; j++){
printf("introdusca el dato %d,%d\t",i+1,j+1);
scanf ("%d",&b[i][j]);
}
}
for (int i=0; i<3; i++){
printf("|");
for (int j=0; j<3; j++){
printf("%4.2d",mult(a,b));
}
printf(" |");
printf("\n");
}
getch();
return 0;
}

我猜想我输入 printf("%4.2d",mult(a,b)); 的方式for 循环内部不会分配 int mult 上的数据或者没有正确返回“c”。

最佳答案

好吧,如果是 Hadamard 计算就可以了。在发回指针之前,您需要对矩阵进行 malloc。

int **mult(int x[3][3], int y[3][3])
{
if (!(c = malloc(sizeof(int*) * 3)))
return (0);

for (int k = 0; k < 3; k++)
for (int l = 0; l < 3; l++)
c[k][l] = x[k][l] * y[k][l];

return c;
}

关于c - 使用函数在 C 中应用 2 个矩阵 3x3 中的 Hadamard 产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53012680/

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