当前位置: 代码迷 >> C语言 >> 动态矩阵的生成与管理,调试不出来。。。
  详细解决方案

动态矩阵的生成与管理,调试不出来。。。

热度:135   发布时间:2007-09-12 18:50:59.0
动态矩阵的生成与管理,调试不出来。。。

#include <stdio.h>
#include <stdlib.h>
typedef struct JZH
{
int a;
struct JZH * next;
} J;
void main()
{
//定义变量
int n,row,line,count,i,j,m[100][100],
J *q,*p,*head,*newMem;


//建立头结点
head=(J *)malloc(sizeof(J));
head->next=NULL;


//对变量赋初值
count=0;
q=head;
p=head->next;


//请用户输入行数
printf("请输入行数:");
scanf("%d",&row);


//请用户输入列数
printf("请输入列数:");
scanf("%d",&line);


//请用户输入数据
printf("请输入数据:");
while(count<line*row)//如果符合要求将数据插入链表
{
//新结点
newMem=(J *)malloc(sizeof(J));

scanf("%d",&n);

//将新数据读入新结点
newMem->a=n;


//按用户输入顺序插入
q->next=newMem;
newMem->next=p;
count++;

q=q->next;

}

/**********按用户要求的行列输出**********/

p=head->next;

while(p!=NULL)
{for(i=0;i<row;i++)
for(j=0;j<line;j++){
m[i][j]=p->a;
p=p->next;
}
}
printf("\n\n该矩阵为:\n\n");
for(i=0;i<row;i++){
for(j=0;j<line;j++){
printf("%-4d",m[i][j]);
}
printf("\n");
}
printf("\n任意键结束程序!\n\n");

}


搜索更多相关的解决方案: 矩阵  head  动态  next  变量  

----------------解决方案--------------------------------------------------------
大体上看程序没什么问题,
是不是,你的链表的最后一个节点,没有指向空啊。
在说,你这个程序根本不用插入,
直接用尾插法建立起个链表不久可以了,让最后一个节点为q ,没接上一个节点 让q->NULL;
----------------解决方案--------------------------------------------------------
  相关解决方案