回 帖 发 新 帖 刷新版面

主题:帮帮忙啊,明天要交作业啊

typedef int datatype;
typedef struct{
                datatype *base;
                int index[3];
                int c[3];
                }array;
int initarray(array *A,int b1,int b2,int b3)
{int elements;
if(b1<=0||b2<=0||b3<=0) return(0);
A->index[0]=b1;A->index[1]=b2;A->index[2]=b3;
elements=b1*b2*b3;
A->base=(datatype*)malloc(elements*sizeof(datatype));
if(!(A->base)) return(0);
A->c[0]=b2*b3;A->c[1]=b3;A->c[2]=1;
return(1);
}



 int value(array A,int i1,int i2,int i3, datatype *x)
{int off;
if(i1<0||i1>=A.index[0]||i2<0||i2>=A.index[1]||i3>=A.index[2])
return(0);
off=i1*A.c[0]+i2*A.c[1]+i3*A.c[3];
*x=*(A.base+off);
return(*x);
}


main()
{array a;
int i,j,k,y,m,x;
initarray(&a,2,3,2);
for(i=0;i<2;i++)
  for(j=0;j<3;j++)
    for(k=0;k<2;k++)
    {scanf("%d",&y);
    assign(&a,y,i,j,k);}
for(i=0;i<2;i++)
  for(j=0;j<3;j++)
    for(k=0;k<2;k++)
 m=value(a,i,j,k,x);
 printf("a[%d][%d][%d]",i,j,k,m);
 getch();
 }

帮我看看哪里错了,怎么这个三元数组打印不了,

回复列表 (共6个回复)

沙发

鄙视让别人帮忙写作业的人

板凳

我看不懂你写的代码什么意思        assign(&a,y,i,j,k);是什么东西?  另外
printf("a[%d][%d][%d]",i,j,k,m) 有这样写的吗

3 楼

[quote]鄙视让别人帮忙写作业的人
[/quote]
鄙视"帮"别人帮忙写作业的人[em9][em9][em9]

4 楼

鄙视鄙视让人写作业的人

5 楼

[quote]鄙视鄙视让人写作业的人[/quote]
哈哈

6 楼

这几句;
for(i=0;i<2;i++)
  for(j=0;j<3;j++)
    for(k=0;k<2;k++)
 m=value(a,i,j,k,x);
 printf("a[%d][%d][%d]",i,j,k,m);
是不是要加个大括号:
for(i=0;i<2;i++)
  for(j=0;j<3;j++)
    for(k=0;k<2;k++)
{
 m=value(a,i,j,k,x);
 printf("a[%d][%d][%d]",i,j,k,m);
}
还有你的程序风格不好,这样看代码时会很吃力.

我来回复

您尚未登录,请登录后再回复。点此登录或注册