注册 登录
编程论坛 C++教室

[求助]为什么运行不了,编译没问题的

shohokuooo 发布于 2008-04-14 21:45, 793 次点击
就是想实现5个人围成一圈,顺序编号。从第1个人开始报数(从1到3报数),凡报道3的人退出圈子,问最后留下的是原来第几号的那位?
#include<stdio.h>
#define NULL 0
struct line{
    int num;
    struct line *next;
};
void main(){
    int i,j;
    struct line *p[5],*q,*w;
    for(i=0;i<4;i++){
        p[i]->num=i+1;
        p[i]->next=p[i+1];
    }
    p[4]->num=5;
    p[4]->next=p[0];
    j=1;
    w=p[0];
    while(w->next!=w){
        if(j!=3){
            q=w;
            w=w->next;
            j++;
        }
        else{
            q->next=w->next;
            w=NULL;
            w=q->next;
            j=1;
        }
    }
    printf("%d\n",w->num);
}
3 回复
#2
shohokuooo2008-04-14 22:20
#include<stdio.h>
#define NULL 0
struct line{
    int num;
    struct line *next;
};
void main(){
    int i,j;
    struct line p[5],*q=NULL,*w=NULL;
    for(i=0;i<4;i++){
        p[i].num=i+1;
        p[i].next=&p[i+1];
    }
    p[4].num=5;
    p[4].next=&p[0];
    j=1;
    w=&p[0];
    while(w->next!=w){
        if(j!=3){
            q=w;
            w=w->next;
            j++;
        }
        else{
            q->next=w->next;
            w=NULL;
            w=q->next;
            j=1;
        }
    }
    printf("%d\n",w->num);
}

这是我修改后的正确答案,太郁闷了,你们都不回答,但是为什么不好用结构体来定义指针数组呢?

[[it] 本帖最后由 shohokuooo 于 2008-4-14 22:27 编辑 [/it]]
#3
aipb20072008-04-15 01:10
但是为什么不好用结构体来定义指针数组呢?

没找到问题的关键。你的用了指针,我一句new或者malloc都没看到。
#4
shohokuooo2008-04-15 14:54
这个题里面,用不到new或者malloc,我就是想问下,为什么第一个程序运行不了啊,编译时能通过的,谢谢
1