c语言数据结构问题

#include<stdio.h>#include<malloc.h>structff{intID;structff*next_friend;structff*next;... #include<stdio.h>
#include<malloc.h>
struct ff
{
int ID;
struct ff *next_friend;
struct ff *next;
};
void main()
{
int circle_num,i,j,num;
scanf("%d",&circle_num);
ff *c,*c1,*c2;
c2=(ff *)malloc(sizeof(ff));
c=c2;
for(i=0;i<circle_num;i++)
{
c1=(ff *)malloc(sizeof(ff));
scanf("%d",&num);
ff *c3=(ff *)malloc(sizeof(ff));
c2=c3;
ff *c4;
for(j=0;j<num;j++)
{
c4=(ff *)malloc(sizeof(ff));
scanf("%d",&c3->ID);
c3->next_friend=c4;
c3=c4;
}
c3->next_friend=NULL;
c2->next=c1;
c2=c1;
}

int l;
ff *c5,*c6;
c5=c;
for(l=0;l<circle_num;l++)
{
c6=c5;
while(c6->next_friend!=NULL)
{

printf("%d ",c6->ID);
c6=c6->next_friend;
}
printf("%d\n",c6->ID);
c5=c5->next;
}
}
大概是想做一个表格,只不过,每行的元素个数不一定相等
程序语法是没有错误,但是有点问题
展开
 我来答
匿名用户
2016-10-12
展开全部
#include<stdio.h>
#include<malloc.h>
struct ff
{
 union {int ID;       // 数据节点,存放数据信息
  struct ff *next; }; // 每行的头结点,存放下一行的头结点的地址即指向下一行
 struct ff *next_friend; // 指向下一个数据节点
};
void main()
{
 int circle_num,i,j,num;
 scanf("%d",&circle_num);  // 行数
 ff *c,*c1,*c2;
 c=(ff *)malloc(sizeof(ff)); // 第一行头结点
 c1=c2=c;
 c2->next=NULL;

 for(i=0;i<circle_num;i++)
 {
  scanf("%d",&num);
  ff *c3=c2; //(ff *)malloc(sizeof(ff));
  ff *c4;
  for(j=0;j<num;j++)
  {
   c4=(ff *)malloc(sizeof(ff));
   scanf("%d",&c4->ID);
   c3->next_friend=c4;
   c3=c4;
  }
  c3->next_friend=NULL;
  c2=(ff *)malloc(sizeof(ff));
  c2->next = c1;
  c1->next=c2;
  c1=c2;
 }
 c2->next->next =NULL;
 free(c2);
 int l;
 ff *c5,*c6;
 c5=c;
 for(l=0;l<circle_num;l++)
 {
  c6=c5->next_friend;
  while(c6!=NULL)
  {
   
   printf("%d ",c6->ID);
   c6=c6->next_friend;
  }
  printf("\n");
  c5=c5->next;
 }
}

改动了一下,表格的每行有一个头结点, 头结点有next,指向下一行,其他节点是ID,,存放信息。

以上代码估计会存在问题的情况是行数为0的时候

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式