吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 533|回复: 7
上一主题 下一主题
收起左侧

[已解决] 请教c的小问题

[复制链接]
跳转到指定楼层
楼主
xinkuzix 发表于 2024-9-6 15:31 回帖奖励
#include <stdio.h>

struct birthday{
int year;
int month;
int day;
};

struct student{
    int id;
    char * name;
    struct birthday b;
    struct student * next;
};

void outpt( struct student * p ) {
    while (p->next != NULL){
        printf("id=%d  name:%s birthday:%d,%d,%d\n",
                p->id, p->name, p->b.year, p->b.month, p->b.day);
   
        p->next = p->next->next;
    }   

}


int main() {
    struct student stu[] = {{1,  "zhangsan", {1990, 1, 1}, NULL},
                            {2, "lisi", {2000, 2, 2}, NULL},
                            {3, "wangwu", {1992, 3, 3}, NULL},
                            {4, "zhaoliu", {1989, 4, 4}, NULL},
                            {5, "maqi", {1995, 5, 5}, NULL}};
    stu[0].next = &stu[1];
    stu[1].next = &stu[2];
    stu[2].next = &stu[3];
    stu[3].next = &stu[4];
   
    struct student * pstu = stu;

    outpt(pstu);

    return 0;
}

不能遍历这个链表,好像是指针进不了stu[1],请问是哪的问题?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
wslans 发表于 2024-9-6 15:50
p->next = p->next->next; 改成  p = p->next;
3#
 楼主| xinkuzix 发表于 2024-9-6 15:52 |楼主
wslans 发表于 2024-9-6 15:50
p->next = p->next->next; 改成  p = p->next;

谢谢,我先去试一下,然后再想为什么,不明白再回来请教。
4#
 楼主| xinkuzix 发表于 2024-9-6 15:59 |楼主
xinkuzix 发表于 2024-9-6 15:52
谢谢,我先去试一下,然后再想为什么,不明白再回来请教。

stu[5],遍历不到
5#
 楼主| xinkuzix 发表于 2024-9-6 16:01 |楼主
wslans 发表于 2024-9-6 15:50
p->next = p->next->next; 改成  p = p->next;

stu[5]显示不出来,
6#
wslans 发表于 2024-9-6 16:02
while (p->next != NULL)改while(p!=NULL)
7#
 楼主| xinkuzix 发表于 2024-9-6 16:07 |楼主
wslans 发表于 2024-9-6 16:02
while (p->next != NULL)改while(p!=NULL)

好了,谢谢老师。我去消化一下
8#
wuaipojie_lbw 发表于 2024-9-6 17:56
#include <stdio.h>

struct birthday {
    int year;
    int month;
    int day;
};

struct student {
    int id;
    char *name;
    struct birthday b;
    struct student *next;
};

void outpt(struct student *p) {
    while (p != NULL) {
        printf("id=%d  name:%s birthday:%d,%d,%d\n",
               p->id, p->name, p->b.year, p->b.month, p->b.day);
        p = p->next;
    }
}

int main() {
    struct student stu[] = {{1, "zhangsan", {1990, 1, 1}, NULL},
                            {2, "lisi", {2000, 2, 2}, NULL},
                            {3, "wangwu", {1992, 3, 3}, NULL},
                            {4, "zhaoliu", {1989, 4, 4}, NULL},
                            {5, "maqi", {1995, 5, 5}, NULL}};
    stu[0].next = &stu[1];
    stu[1].next = &stu[2];
    stu[2].next = &stu[3];
    stu[3].next = &stu[4];

    struct student *pstu = stu;

    outpt(pstu);

    return 0;
}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 16:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表