本文目录一览:
矩阵运算的c语言实现
算法应该没有问题,错在下面:
1、没有对矩阵pc分配内存。
2、mul( )中for(i=0;iai;i++)打错了,将 iai 改为 iai
用C语言编写个N*N矩阵,由外层到内层依次:第一层全是1;第二层全是2;第三层是3;
#includestdio.h
#define N 9
void main()
{
int a [N][N];
int i,j;
for(i =0;iN;i++)
for(j= 0;jN;j++)
{
a[i][j]= i+1;
}
for(i =0;iN;i++)
{ for(j= 0;jN;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
}
怎样用C语言写矩阵?
用二维数组,如下:
#include stdio.h
main()
{
int i, j, a[4][4];
for ( i = 1; i 4; i++ )
{
for ( j = 1; j 4; j++ )
{
scanf ("%d", a[i][j]);
}
}
//这样就可以将一个3*3 的矩阵存在2维数组中了
for ( i = 1; i 4; i++ )
{
for ( j = 1; j 4; j++ )
{
printf (" %-4d ", a[i][j]);
}
printf ("\n");
}
//这样就可以显示矩阵
return 0;
}
数据结构(使用C语言)关于矩阵
你的测试数据不符合条件,不是对称矩阵。但函数调试已调试好了,无误。
#include stdio.h
#define N 3
#define M (N*N+N)/2
void add(int C[],int A[],int B[])
{
for(int i=0;iM;i++)
C[i]=A[i]+B[i];
}
void print(int C[])
{
int i,j,t;
for(i=0;iN;i++)
{
for(int j=0;jN;j++)
{
if(i=j) t=(i+1)*i/2+j;
else t=(j+1)*j/2+i; //下三角存储
printf("%d ",C[t]);
}
printf("\n");
}
}
int main(void)
{
int a[N][N]={{1,2,3},{10,20,30},{2,4,5}};
int b[N][N]={{20,40,50},{3,5,6},{30,50,60}};
int A[M],B[M],C[M];
int i,j,t=0,k=0;
for(i=0;i=2;i++)
for(j=0;j=i;j++)
{
A[t++]=a[i][j];
B[k++]=b[i][j];
}
add(C,A,B);
print(C);
return 0;
}