免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1506 | 回复: 2
打印 上一主题 下一主题

帮个忙看一下有什么问题吧? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-23 12:10 |只看该作者 |倒序浏览
大家好,我自己最近在学习数据结构,碰到了约瑟夫问题,自己编写了个程序,在vc++ 6下编译通过,但是执行起来有问题,内存不能为写。
大家帮忙看一下把?谢谢了。


#include <stdio.h>
#include <stdlib.h>
typedef struct node{
    int num;
    struct node *next;
        } list;
        
//初始化链表 ,并返回头指针  
list * initlist(int n){
  list * p=(list * )malloc(sizeof list);
  p->num=n;
  list * listend=p;
  for(int i=1;i<n;i++) {
     list * temp =(list *)malloc(sizeof list);
     temp->num=n-i;
     temp->next=p;   
     p=temp;   
           }  
   listend->next=p ;      //循环链表至此才真正建立  
     
   return p;  
     
     }      
void displaynode(list * p,int code,int listnum)
{     for(;listnum>0
        {for(int i=1;i<code-1;i++) p=p->next;
         list *temp=p;
         int number;
         p->next=p->next->next;
         number=temp->next->num;
         free(temp->next);
         printf("%5d",number);
         printf("--";
         listnum-- ;//输出一个节点,listnum就减少一
               
         }   
            
}        


        
int main(int argc, char *argv[])
{ list * head;
  int listsize;int code=0;
  printf("iuput the ...:";
  scanf("%d",&listsize);
  scanf("%d",&code);
head=initlist(listsize);
displaynode(head,code,listsize);
  
  system("AUSE";       
  return 0;
}

论坛徽章:
0
2 [报告]
发表于 2007-10-23 12:27 |只看该作者
大哥,加个code吧
好多表情啊……

论坛徽章:
0
3 [报告]
发表于 2007-10-23 12:31 |只看该作者
不影响阅读的,就这一句看着有问题

void displaynode(list * p,int code,int listnum)
{     for(;listnum>0                                             //加个; 加个 ) 就可以了
        {for(int i=1;i<code-1;i++) p=p->next;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP