gpt4 book ai didi

c - C中键盘输入的链表

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:49 25 4
gpt4 key购买 nike

我正在编写代码,它接受用户输入的整数并创建一个链表,然后打印出该列表。整数应该放在列表的前面。

我需要一点帮助,我不知道如何打印这些数字。
这是我的代码:

Node.h

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

#ifndef _nodes
#define _nodes

typedef struct node_s {
int d;
struct node_s *next;
} node1;

node1 list(int d);
node1 addbegin(int d, node1 *head);
node1 print(node1 *head);

#endif

node.c

#include "node.h"
#include <stdio.h>

node1 *list_nodes(int d){
node1 *node;
node=(node1*)malloc(sizeof(node1));
node->d=d;
node->next=NULL;
return(node);
}

node1 init(node1 *head){
head->next=NULL;
}

node1 addbegin_nodes(node1 *head, int d){
node1 *newnode;
newnode=(node1*)malloc(sizeof(node1));
newnode=list_nodes(d);
head->next=newnode;
return(newnode);
}

node1 print_nodes(node1 *head){
node1 *temp;
temp=(node1*)malloc(sizeof(node1));
for(temp=head->next;
temp;
temp=temp->next)
printf("%d", temp->d);
return (d);
}

主.c

#include <stdlib.h>
#include <stdio.h>
#include "node.h"

int main(int argc, char* argv[]) {
node1 *head;
node1 *start;
int num;

printf("Please enter integers: ");
while(scanf("%d", &num)!=EOF){
head=(node1*)malloc(sizeof(node1));
list(head);
int i=0;
for(i=0;i>=0;i--){
addbegin(head, num);
print(head);
}
printf("\n");
print(head);
}
return 0;
}

最佳答案

将您的 print_nodes 更改为

//recursive version
void print_nodes(node1 *head)
{
if (head != NULL)
{
printf("%d\n", head->d);
print_nodes(head->next);
}
}

或者

// normal version
void print_nodes(node1 *head)
{
node1 *temp = head;

while (temp != 0)
{
printf("%d\n", temp->d);
temp = temp->next;
}
}

我现在不明白为什么这些方法应该返回任何东西,请在评论中澄清。

关于c - C中键盘输入的链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8347797/

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