我的代码是: -
/ *程序将数据存储在链接列表中,然后打印所有数据* /
#include <stdio.h>
#include <malloc.h>
struct value
{
char data;
struct value *next;
};
void main(void)
{
struct value *head, *temp;
char i;
head = (struct value *) malloc (sizeof(struct value));
temp = head;
while (temp != NULL)
{
printf("Enter value to store in link list Enter z to stop\n");
scanf("%c", &i);
temp->data = i;
if (i == 'z')
{
temp->next = NULL;
}
else
{
temp->next = (struct value *) malloc (sizeof(struct value));
}
temp = temp->next;
}
temp = head;
while (temp != NULL)
{
printf("Data is %c\n", temp->data);
temp = temp->next;
}
}
输出: -
输入要存储在链接列表中的值输入z以停止
一个
输入要存储在链接列表中的值输入z以停止
输入要存储在链接列表中的值输入z以停止
b
输入要存储在链接列表中的值输入z以停止
输入要存储在链接列表中的值输入z以停止
ç
输入要存储在链接列表中的值输入z以停止
输入要存储在链接列表中的值输入z以停止
ž
数据是一个
数据为
数据是b
数据为
数据是c
数据为
数据是z
4.95秒后退出流程,返回值为0 按任意键继续 。 。
请告诉我为什么要两次打印一份声明。代码有什么问题 感谢