| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1175 人关注过本帖
标题:初学者的问题
取消只看楼主 加入收藏
adminmaster
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-1-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
初学者的问题
13个人围成一圈,从第一个人开始顺序报号1、2、3。凡报到3者退出圈子。找到最后留在圈子的人原来的序号。

老谭书上的一个题,我自己写了一段程序,但是运行结果不对。用的TC 2.01版本,求达人解答!!

# include "malloc.h"
# define NULL 0
# define LEN sizeof(struct student)

struct student
{
int num;
struct student *next;

};

int n;

struct student *creat()
{
struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=( struct student * )malloc(LEN);
scanf("%ld", &p1->num);

head=NULL;
while(p1->num!=14)
{
   n=n+1;
   if(n==1) head=p1;
   else p2->next=p1;
   p2=p1;
   p1=(struct student *) malloc(LEN);
   scanf("%ld",&p1->num);
   }

p2->next=head;
return (head);
}



struct student *del(struct student *head )

{
struct student *p1,*p2;

p1=head;
n=0;
while(p1->next==NULL)
{
   n=n+1;
   p2=p1;
   p1=p1->next;

   if(n==3){p2->next=p1->next;p1=p1->next;n=0;}


   }
   return(p2);
}


int main()
{

   printf("%ld", del(creat()));
   return 0;
   }
搜索更多相关主题的帖子: next include 
2010-01-18 23:26
adminmaster
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-1-18
收藏
得分:0 
谢谢楼上的指教。
判断指针为空的目的是确定运行 del()之后 链表里面只剩最后一个节点。
你帮我修改的程序里面creat()为什么没有scanf()语句呢?还有就是你的del()函数里的while(n)里的N是个循环什么条件?
我运行你的程序得得结果是67305477。。。结果不对吧。
2010-01-19 14:16
adminmaster
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-1-18
收藏
得分:0 
我用的TC2.01。。。
哪种编译器好些?
2010-01-19 22:50
adminmaster
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-1-18
收藏
得分:0 
算了,不考虑这个了。我用TC 2.01得出的结果还是有问题。
不过还是很感谢帮助

2010-01-19 22:57
adminmaster
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-1-18
收藏
得分:0 
广陵真是热心肠~
向你学习
我结贴了
2010-01-20 14:47
快速回复:初学者的问题
数据加载中...
 
   



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

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