c语言程序执行就停止运行,当中一个函数执行完就停止了,求大神路过!

中间一个函数执行完就停止了,求大神路过!!

题目是输入一个矩阵,并转置。。

#include

#include

#define M 1

#define N 2

struct three

{

int r;   //行

int c;   //列

int d;   //元素值

};

struct trix

{

int row;

int col;

int num;

struct three data[M*N] ;

};

struct zhu

{

int p;

int q;

}l[N];

struct trix t;

void create();    //创一个矩阵

void pri();      //输出矩阵

void zhuan();     //矩阵转置

void main()

{

system("cls");system("color 02");

create();    //创一个矩阵

pri();     //输出矩阵

zhuan();   //矩阵转置

printf("请按任意键继续");

system("pause");

pri();    //输出矩阵

}

void zhuan()

{

struct trix th;int i,j,k;

th.col=M;th.row=N;

for(k=0;k

{

if(t.data[k].d==0) break;

i=t.data[k].c;

l[i].p++;

}

l[0].q=1;

for(j=1;j

l[j].q=l[j-1].q+l[j-1].p;

for(k=0;k

{

if(t.data[k].d==0) break;

i=t.data[k].c;

j=l[i].q;

th.data[j].c=t.data[k].r;

th.data[j].r=t.data[k].c;

th.data[j].d=t.data[k].d;

l[i].q++;

}

t=th;

}

void pri()

{

int i,j,k=0;

printf("\n\n\n");

if(t.num<=0) return;

printf("矩阵为%d行、%d列,有%d个非0元素\n",t.row,t.col,t.num);

printf("---------------------------------\n");

for(i=0;i

{

for(j=0;j

{

if((t.data[k].r==i)&&(t.data[k].c==j))

{ printf("%d   ",t.data[k].d);k++;}

else

{ printf("0   ");}

}

printf("\n");

}

}

void create()

{

int i,j;int one[M][N];

t.row=M;t.col=N;t.num=0;

printf("请输入%d行、%d列的矩阵元素:\n",M,N);

for(i=0;i

{

for(j=0;j

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

}

for(i=0;i

for(j=0;j

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

{

t.data[t.num].r=i;t.data[t.num].c=j;

t.data[t.num].d=one[i][j];t.num++;

}

}

------解决方案--------------------

我測試過沒有問題

t.data.r t.data.c t.data.d初始化都是0

------解决方案--------------------

void zhuan()

{

struct trix th;int i,j,k;

th.col=M;th.row=N;

th.num=t.num;//非0个数

for(k=0;k

{

if(t.data[k].d==0) break;

i=t.data[k].c;

l[i].p++;

}

l[0].q=0;//开始地址0

for(j=1;j

l[j].q=l[j-1].q+l[j-1].p;

for(k=0;k

{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值