gpt4 book ai didi

c - 使用链表读取输入,如何开始

转载 作者:行者123 更新时间:2023-11-30 20:41:35 25 4
gpt4 key购买 nike

嗨,我正在编写这段代码,它需要 3 个字段,将其存储到结构中,但我不知道如何创建节点,并且函数 print_planet_list() 应该遍历链表并打印出输出。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/* the struct */
typedef struct{
char name[128];
double dist;
char description[1024];
} planet_t;

/* have to write a definition here */
typedef struct planet_node {
???; /* what to write here? */
} planet_node;

/* Print a list of planets pointed to by ptr */
void print_planet_list(planet_node *ptr){
while(ptr != NULL){
printf("%15s %10.2f %s\n",
new[i].name,
new[i].dist,
new[i].description);/* not sure if its correct */
}
printf("\n");
}

int main(){
char buf[64];
planet_node *head = NULL;
int quit = 0;

do {
printf("Enter planet name (q quits): ");
scanf("%s",buf);
if((strcmp(buf,"q")==0)){
quit = 1;
}
else{
planet_node *new = (planet_t *) malloc(sizeof(planet_t)*? );
strcpy(???);
printf("Enter distance and description: ");
scanf(" %lf ", new[i].dist);
gets(new[i].description);
ptr->head; /* Link new node to head */
???; /* Set the head to the new node */
}
} while(!quit);

printf("Final list of planets:\n");
print_planet_list(head);


while(head != NULL){
planet_node *remove = head;
head = (*head).next;
free(remove);
}
}

我想要的输入是:
输入行星名称(q退出):地球输入距离和描述:0.9 友好好客输入行星名称(q退出):火星输入距离和描述:1.05 非常国际化

输出:

火星1.05 非常国际化地球0.90 友善好客

最佳答案

typedef struct planet_node {
char name[128];
double dist;
char description[1024];
struct planet_node *next;


} planet_node;

我认为这就是您应该声明 planet_node 结构的方式,其中 next 存储下一个节点的地址。

关于c - 使用链表读取输入,如何开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13034623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com