matlab c语言 转换为字符串,[MATLAB基础] C语言转换成matlab

icon1.gif C语言转换成matlab

如题,请高手帮帮忙,感激不尽

#include "stdio.h"

#include "string.h"

#define N 50

int jisuan(int a[N][N][N],int h,int z,int i,int j);

void micifang(int a[N][N][N],int h,int t);

void buer(int a[N][N][N],int h);

void warshall(int a[N][N][N],int h);

main()

{

int i,h,j,t;

int a[N][N][N];

printf("请输入邻接矩阵A的行数(或列数):\n");

scanf("%d",&h);

printf("\n请输入邻接矩阵A:\n\n");

for(i=0;i

{

printf("请输入邻接矩阵A的第%d行.\n",i+1);

for(j=0;j

scanf("%d",&a[0][i][j]);

}

printf("\n邻接矩阵A为:\n");

for(i=0;i

{

for(j=0;j

printf(" %d ",a[0][i][j]);

printf("\n");

}

printf("\n\n\n算法一:\n");

printf("\n矩阵A的1次方为:\n");

for(i=0;i

{

for(j=0;j

printf(" %d ",a[0][i][j]);

printf("\n");

}

micifang(a,h,2);

for(i=0;i

for(j=0;j

a[h][i][j]=0; //全部赋值为0!

for(i=0;i

for(j=0;j

for(t=0;t

a[h][i][j]=a[h][i][j]+a[t][i][j];

printf("\n\nB的值如下:\n");

for(i=0;i

{

for(j=0;j

printf(" %d ",a[h][i][j]);

printf("\n");

}

printf("\n\n\n算法二:\n");

printf("\n矩阵A的1次布尔幂次方为:\n");

for(i=0;i

{

for(j=0;j

{

if(a[0][i][j]>1)

a[0][i][j]=1;

printf(" %d ",a[0][i][j]);

}

printf("\n");

}

buer(a,h,2);

printf("\n\nP的值如下:\n");

for(i=0;i

{

for(j=0;j

{

if(a[h][i][j]>1)

a[h][i][j]=1;

printf(" %d ",a[h][i][j]);

}

printf("\n");

}

printf("\n\n\nwarshall算法:\n\n");

for(i=0;i

for(j=0;j

if(a[0][i][j]!=0)

a[0][i][j]=1;

printf("整理后的可达矩阵为:\n");

for(i=0;i

{

for(j=0;j

printf(" %d ",a[0][i][j]);

printf("\n");

}

warshall(a,h);

getch();

}

int jisuan(int a[N][N][N],int h,int z,int i,int j)

{

int s,jg=0;

if(z==2)

for(s=0;s

jg=jg+a[z-2][i][s]*a[z-2][s][j];

else

for(s=0;s

jg=jg+a[z-2][i][s]*a[0][s][j];

return jg;

}

void micifang(int a[N][N][N],int h,int t)

{

int i,j,s=0;

int z=t;

if(z

{

for(i=0;i

for(j=0;j

a[z-1][i][j]=0; //全部赋值为0!

for(i=0;i

for(j=0;j

a[z-1][i][j]=jisuan(a,h,z,i,j);

printf("\n矩阵A的%d次方为:\n",z);

for(i=0;i

{

for(j=0;j

printf(" %d ",a[z-1][i][j]);

printf("\n");

}

micifang(a,h,++z);

}

}

void buer(int a[N][N][N],int h,int t)

{

int i,j,s=0;

int z=t;

if(z

{

for(i=0;i

for(j=0;j

a[z-1][i][j]=0; //全部赋值为0!

for(i=0;i

for(j=0;j

a[z-1][i][j]=jisuan(a,h,z,i,j);

printf("\n矩阵A的%d次布尔幂次方为:\n",z);

for(i=0;i

{

for(j=0;j

{

if(a[z-1][i][j]>1)

a[z-1][i][j]=1;

printf(" %d ",a[z-1][i][j]);

}

printf("\n");

}

buer(a,h,++z);

}

}

void warshall(int a[N][N][N],int h)

{

int i,j,p,q,r=0,s;

for(j=0;j

for(i=0;i

if(i!=j && a[0][i][j]==1)

{

for(s=0;s

{

a[0][i][s]=a[0][i][s]+a[0][j][s];

if(a[0][i][s]==2)

a[0][i][s]=1;

}

printf("\n第%d次运算的结果如下:\n",++r);

for(p=0;p

{

for(q=0;q

printf(" %d ",a[0][p][q]);

printf("\n");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值