要疯了,求助大神一个简单的问题,为什么我这个算法在vc6.0里运行不了
#include <stdio.h>#include <stdlib.h>
typedef struct list
{
int num;
char name;
struct list *next;
}node;//定义一个链表存储结构;
void init_list(node *L,node *temp)
{
int item;
char item1;
int n=1;
while(1)
{
printf("请输入学生学号(输入0表示结束):\n");
scanf("%d",&item);
if(item == 0)
break;
printf("请输入学生姓名:\n");
scanf("%s",&item1);
L = (node*)malloc(sizeof(struct list));
L->num = item;
L->name = item1;
if(n==1)
{
temp = (node*)malloc(sizeof(struct list));
temp = L;
n++;
}
L = L->next;
}
L = NULL;
}
void print_list(node *temp)
{
while(temp != NULL)
{
printf("%d", temp->num);
printf("%c", temp->name);
temp = temp->next;
}
}
int main()
{
node *L;
node *temp;
init_list(L,temp);
print_list(temp);
return 0;
}
求助大神帮帮忙,一直改都是错的。要疯了。 1.什么错?你指望我复制你的代码,然后粘贴到vc6看报错信息吗?
我没有vc6,所以不要对别人的环境做任何假设,把你的问题描述清楚
2.贴报错信息
人造人 发表于 2019-6-3 13:37
1.什么错?你指望我复制你的代码,然后粘贴到vc6看报错信息吗?
我没有vc6,所以不要对别人的环境做任何假 ...
就是语法上没有错误,逻辑上错误了,程序可以运行,但是要的结果与我不符,我是想创建一个单链表,然后输入学号和对应的名字,并把这些学号名字都打印出来。我刚刚又仔细研究了一下,发现应该是数组那边出错了,我那边定义的是一个字符型变量,而输入输出的是字符串变量,这边应该是错误的。
然后我想向您请教一下,c语言中怎么把输入的字符串赋值到L->name里面去,因为c语言中字符串的表示方法好像只有字符型数组与字符型指针的形式,而两者都没有办法实现这个。 说的更直白一点,就是我输入张三,然后怎么赋值给name里去呢?
不好意思麻烦大神啦{:5_92:} 星星没有泪 发表于 2019-6-3 16:28
就是语法上没有错误,逻辑上错误了,程序可以运行,但是要的结果与我不符,我是想创建一个单链表,然后输 ...
用字符数组
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct node
{
int num;
char name;
struct node *next;
} node, list_t;
list_t *init_list(void)
{
node *head = (node *)malloc(sizeof(node));
memset(head, 0, sizeof(node));
node *p = head;
while(1)
{
p->next = (node *)malloc(sizeof(node));
printf("请输入学生学号(输入0表示结束): ");
scanf("%d", &p->next->num);
if(p->next->num == 0)
break;
printf("请输入学生姓名: ");
scanf("%s", p->next->name);
p = p->next;
}
free(p->next);
p->next = NULL;
return head;
}
void deinit_list(list_t *head)
{
node *p = head;
while(p)
{
node *temp = p;
p = p->next;
free(temp);
}
}
void print_list(list_t *head)
{
node *p = head->next;
while(p)
{
printf("%d %s\n", p->num, p->name);
p = p->next;
}
}
int main(void)
{
list_t *head = init_list();
print_list(head);
deinit_list(head);
return 0;
}
页:
[1]