求救!!!!!!!!
还是不行啊
源程序如下 (求4维矩阵的m次方)
main()
{
int a[4][4],deg[4];
int i,j,m;
printf("start end m");
scanf("%d %d %d",&i,&j,&m);
jzcf(a,m);
printf("start:%d end:%d road:%d",i,j,a[i][j]);
}
void jzcf(int *c,int m)
{
int i,j,k;
int *b;
if(m>=1)
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
for(k=0;k<4;k++)
*(b+4*i+j)+=*(c+4*i+k)*(*(c+4*k+i));
}
c=b;
jzcf(c,m-1);
}
一个是多维数组,一个是指针不一样
[此贴子已经被作者于2007-6-10 17:07:08编辑过]
----------------解决方案--------------------------------------------------------
10楼的我改了一下,看看结果对不对(DEVC++下通过编译)
如果没有负数,建议用无符号长整形,防溢出,
#include <stdio.h>
#include <conio.h>
int main()
{
int n;
int i;
int j;
int count;
int sum;
int id;
int a[4][4],b[4][4],d[4][4];
printf(" cifang n\n");
scanf("%d",&n);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{ /*你这里没括号*/
scanf("%d",&a[i][j]); /*我帮你加了*/
d[i][j]=a[i][j]; /*不知道对不对*/
}
}
for(i=0;i<4;i++)
{
printf("\n");
for(j=0;j<4;j++)
printf("%d",a[i][j]);
}
printf("\n\n");
for(count=0;count<n;count++)
{
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
b[i][j]=d[i][j];
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
sum=0;
for(id=0;id<4;id++)
{
sum+=a[id][j]*b[i][id];
}
d[i][j]=sum;
}
}
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
printf("d[%d][%d]=%d\n",i,j,d[i][j]);
}
getch();
return 0;
}
[此贴子已经被作者于2007-6-10 17:09:38编辑过]
----------------解决方案--------------------------------------------------------