| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 841 人关注过本帖
标题:[求助]链表问题
只看楼主 加入收藏
hsong1986
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-6-13
收藏
 问题点数:0 回复次数:13 
[求助]链表问题

统计链表数组中某种商品购买超过2次的商品代码
代码(1,2,3,4,5,6)
#include <stdio.h>
#include <stdlib.h>
struct link
{
int num;
struct link *next;
};
struct link *creat(struct link *head) /*创建链表*/
{
struct link *p1,*p2;
int n=0;
p1=p2=(struct link *)malloc(sizeof(struct link));
scanf("%d",&p1->num);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(struct link *)malloc(sizeof(struct link));
scanf("%d",&p1->num);
}
p2->next=NULL;
return head;
}

main()
{
struct link D[10],*p1;
int n,i,s,a[6],k=0,flag1,flag2,sum,B[6][2]; /*定义数据,全有用*/
for(n=0;n<10;n++) /*创建数组存放10个链表*/
D[i].next=creat(&D[i]);
for(i=1;i<=6;i++) /*对商品1-6逐一对照*/
{
s=0;
for(n=0;n<10;n++)
{
p1=&D[n];
while(p1->next!=NULL)
{
p1=p1->next;
if(p1->next==i)
s++;}}
if(s>=2)
{a[k]=i; /*存放满足条件的商品*/
k++; }}
for(i=0;i<k;i++)
printf("%d",a[i]);} /*输出满足条件的商品*/
链表数组建立正确吗?
数据输入正确吗?
输入数据后为什么没有输出???

[此贴子已经被作者于2006-6-18 11:47:32编辑过]

搜索更多相关主题的帖子: 链表 
2006-06-18 11:46
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用hsong1986在2006-6-18 11:46:35的发言:
D[i].next=creat(&D[i]);


D[i].next 这是什么? 编译器没提示错误?


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-06-18 14:40
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-18 14:48
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
老潭书上的确错误很多.而且他的代码很不规范化

引用 神的话..初学应该从国外的名著开始.那样会有好的习惯..

我就在改呢.

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-06-18 14:51
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-18 15:07
hsong1986
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-6-13
收藏
得分:0 

#include <stdio.h>
#include <stdlib.h>
struct link
{
int num;
struct link *next;
};
struct link *creat(struct link *head)
{
struct link *p1,*p2;
int n=0;
p1=p2=(struct link *)malloc(sizeof(struct link));
scanf("%d",&p1->num);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(struct link *)malloc(sizeof(struct link));
scanf("%d",&p1->num);
}
p2->next=NULL;
return head;
}

main()
{
struct link D[10],*p1;
int n,i,j,s,a[6],k=0,b=0,flag1,flag2,sum,B[6][2];
for(n=0;n<10;n++)
D[n].next=creat(&D[n]);
for(i=1;i<=6;i++)
{
s=0;
for(n=0;n<10;n++)
{
p1=&D[n];
while(p1->next!=NULL)
{
p1=p1->next;
if(p1->num==i)
s++;
}
}
if(s>=2)
{
a[k]=i;
k++;
}
}
printf("Yi Wei Fan Mu Ji:\n");
for(i=0;i<k;i++)
printf("%4d",a[i]);
}

[此贴子已经被作者于2006-6-21 16:10:54编辑过]


智慧是:判断正确 接受新知 处世明快 汲取经验 善用知识
2006-06-19 11:42
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-19 11:46
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-19 11:48
乱世魔头
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-5-18
收藏
得分:0 

水平有限,但对此题的提出者要说明2点,仅供参考:在C中无链表数组这一概念
链表与数组有本质区

统计链表数组中某种商品购买超过2次的商品代码
代码(1,2,3,4,5,6)
#include <stdio.h>
#include <stdlib.h> /*c中不有这样开头*/
struct link
{
int num;
struct link *next;
};
struct link *creat(struct link *head) /*创建得对*/ /*创建链表*/
{
struct link *p1,*p2;
int n=0;
p1=p2=(struct link *)malloc(sizeof(struct link));
scanf("%d",&p1->num);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(struct link *)malloc(sizeof(struct link));
scanf("%d",&p1->num);
}
p2->next=NULL;
return head;
}

main()
{
struct link D[10],*p1;
int n,i,s,a[6],k=0,flag1,flag2,sum,B[6][2]; /*定义数据,全有用*/
for(n=0;n<10;n++) /*此处都和数组无关 */ /*创建数组存放10个链表*/
D[i].next=creat(&D[i]);
for(i=1;i<=6;i++) /*对商品1-6逐一对照*/
{
s=0;
for(n=0;n<10;n++)
{
p1=&D[n];
while(p1->next!=NULL)
{
p1=p1->next;
if(p1->next==i)
s++;}}
if(s>=2)
{a[k]=i; /*存放满足条件的商品*/
k++; }}
for(i=0;i<k;i++)
printf("%d",a[i]);} /*输出满足条件的商品*/
下面是本人做的,上机通过.
#include "stdio.h"
struct link
{int num;
struct link *next;
};
struct link *creat(struct link *head,int k)
{struct link *p1,*p2;
int n=1;
p1=p2=(struct link*)malloc(sizeof(struct link));
scanf("%d",&p1->num);
while(n<k)
{n=n+1;
if (n==2) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct link *)malloc(sizeof(struct link));
scanf("%d",&p1->num);
}
p2->next=p1;
p1->next=NULL;
return head;
}
main( )
{struct link *head=NULL,*p1;
int a[7]={0,0,0,0,0,0,0},i;
head=creat(head,10);
p1=head;
while(p1)
{a[p1->num]++;
p1=p1->next;
}
for (i=1;i<7;i++)
if (a[i]>=2) printf("%4d",i);
printf("\n");
}


2006-06-19 19:43
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-19 23:58
快速回复:[求助]链表问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016942 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved