【发布时间】:2013-06-21 05:45:20
【问题描述】:
代码在编译时出现错误,我不知道为什么 问题是关于一家保单公司,但与此无关 只是为了让你明白我在做什么
我认为错误在“(*h)=temp”行中
typedef struct
{
char cmp_name[20];
int pol_code;
float pol_price;
int drivers;
float new_d;
float old_d;
} POL;
typedef struct node
{
POL policy;
struct node *next;
} NODE;
void ins(NODE **h,NODE *p)
{
NODE *temp;
temp=(NODE*)malloc(sizeof(NODE));
if(p==NULL)
{
(*h)=temp;
temp->next=NULL;
}
else
{
p->next=temp;
p=p->next;
temp->next=NULL;
}
printf("\nEnter Company Name: ");
scanf("%s",temp->policy.cmp_name);
printf("\nEnter Policy Code: ");
scanf("%d",temp->policy.pol_code);
printf("\nEnter Policy Price: ");
scanf("%f",temp->policy.pol_price);
printf("\nEnter Number of Drivers: ");
scanf("%d",temp->policy.drivers);
printf("\nAddon for a New Driver: ");
scanf("%f",temp->policy.new_d);
printf("\nAddon for a Old Driver: ");
scanf("%f",temp->policy.old_d);
}
【问题讨论】:
-
注意:我没有粘贴整个代码..它不完整但是当涉及到“scanf”时,编译器给了我错误
-
scanf 取指针
-
如果有人输入了 20 个(或更多)字符的名字会怎样?
-
我想我们都同意接受来自流的输入比简单地
fscanf-ing 它更复杂。但那是我们的学徒朋友自己找出来的;) -
@user2422824,所以更新前的代码和你的问题没有关系?另外,您是如何得出错误在
(*h)=的结论的
标签: c linked-list