【发布时间】:2014-05-15 14:46:40
【问题描述】:
在我的程序中,我想通过一个函数传递一个预先初始化的二维数组。我正确获得了第一个元素,但其余元素在传递时被初始化为 0。我不明白为什么会出现这个问题。我不想使用指针来传递数组。请告诉我是否可以在不使用指针的情况下传递我的二维数组。 这是代码 -
#include<stdio.h>
#define MAX(a,b) (a>b)?a:b
int kat(int S,int A[][S])
{
int i,j,r[S];
r[0] = A[0][0];
j = 0;
for(i=1;i<S;i++)
{
r[i] = MAX(r[i-1] + A[i][j],r[i-1] + A[i][j+1]);
if (r[i-1] + A[i][j] < r[i-1] + A[i][j+1])
j = j+1;
}
return r[S-1];
}
int main()
{
int A[100][100],T,S,i,j,k,ans;
scanf("%d",&T);
while(T--)
{
i=0;
scanf("%d",&S);
for(k=1;k<=S;k++)
{
for(i;i<k;i++)
{
for(j=0;j<=i;j++)
{
scanf("%d",&A[i][j]);
}
}
}
ans = kat(S,A);
printf("%d\n",ans);
}
}
【问题讨论】:
标签: c arrays function pointers 2d