我正在尝试编写矩阵应用程序,但无法获得任何输出。我的代码是下图:问题可能出在显示结果的那一行,但我不确定。您可以帮助我了解问题出在哪里吗?
#include
int main()
{
int *arr1[2][2], *arr2[2][2],*result[2][2];
printf("Enter First Matris\n");
for(int i=0; i<2; i++)
{
for(int j=0; j<2; j++){
printf("[%d][%d]= ", i+1, j+1);
scanf("%d", &arr1[i][j]);
}
}
printf("Enter Second Matris\n");
for(int i=0; i<2; i++)
{
for(int j=0; j<2; j++){
printf("[%d][%d]= ", i+1, j+1);
scanf("%d", &arr2[i][j]);
}
}
printf("result\n");
for(int i=0; i<2; i++)
{
for(int j=0; j<2; j++)
{
*sonuc[i][j] = *arr1[i][j] + *arr2[i][j];
printf("%d ", *result[i][j]);
}
printf("\n");
}
return 0;
}
我建议您阅读有关指针和内存分配功能的文章。 malloc
,calloc
,realloc
及其工作方式。
您犯了很多语法错误。检查此代码。
#include<stdio.h>
#include<conio.h>
int main ()
{
int arr1[2][2], arr2[2][2], result[2][2];
printf ("Enter First Matris\n");
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
{
scanf ("%d", &arr1[i][j]);
}
printf ("Enter Second Matris\n");
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
{
scanf ("%d", &arr2[i][j]);
}
printf ("result\n");
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
result[i][j] =arr1[i][j] +arr2[i][j];
printf ("%d ",result[i][j]);
}
printf ("\n");
}
return 0;
}
您的代码有很多缺陷。您可以尝试使用指针以这种方式添加矩阵:
#include<stdio.h>
void main()
{
int a[5][5],b[5][5],c[5][5],i,j,m,n;
printf("Enter rows & columns:");
scanf("%d %d",&m,&n);
printf("Enter first matrix:");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",(*(a+i)+j));
}
printf("\nEnter second matrix:");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",(*(b+i)+j));
}
printf("\nResult Matrix:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
*(*(c+i)+j)=*(*(a+i)+j)+ *(*(b+i)+j);
printf("%d ",*(*(c+i)+j));
}
printf("\n");
}
}