gpt4 book ai didi

c - 用 C 打印二维数组

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

您好,我有这样的代码,我想知道为什么它只打印数组的第一个元素。

int main()
{
double** mat;
int n;
int m;
printf("Input n,m\n");
scanf("%d %d",&n,&m);

mat = (double**)malloc(n*sizeof(double*));
for( int i=0; i<n; i++)
{
mat[i] = (double*)malloc(m*sizeof(double));
for( int j=0; j<m; j++)
{
mat[i][j]= i*i+j*j;
printf("%lf\n",mat[i][j]);

return 0;
}
}
}

还有一个问题,如果我想以矩阵格式打印该怎么办?

最佳答案

您正在循环本身中从 main 返回控制 - 将代码更改为:

int main()
{
//... your code as it was before - fix your loops
int sum = 0;
for( int i=0; i<n; i++)
{
mat[i] = malloc(m*sizeof(double));
for (int j = 0; j<m; j++)
{
mat[i][j] = i*i + j*j;
printf("%lf ", mat[i][j]);
sum = sum + mat[i][j];
}
printf("\n");
}
printf("\nsum is %d.", sum);
return 0;
}

输出:

Input n,m 3 3
0.000000 1.000000 4.000000
1.000000 2.000000 5.000000
4.000000 5.000000 8.000000

sum is 30.

关于c - 用 C 打印二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28138584/

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