指针有关问题,求!
指针问题,急求!!
在已经存储好数据的指针,要怎样改变它所指向的的值并且能将改正好的指针,能够很好的体现在一个链表里,其实就是链表里数据的修改要怎样完成,下面是我写的代码,错误可能会很多,多次修改还是不知道要怎样修改
主要就是红色的代码:
void changedata(linklist *L)
{
linklist *pt1, *pt2;
char str_num[20];
if(L->next==NULL)
{
printf("无需修改,该表为空表\n");
}
else
{
printf("请输入您要修改的编号信息:");
scanf("%s",str_num);
pt1=L->next;
pt2=(linklist*)malloc(sizeof(linklist));
while(pt1!=NULL)
{
if(strcmp(pt1->num,str_num)==0)
{
printf("\n输入添加货物的信息:");
printf("\n请输入货物编号:");
scanf("%s",&pt2->num);
printf("\n请输入货物名称:");
scanf("%s",&pt2->name);
printf("\n请输入货物进货价:");
scanf("%f",&pt2->purchase);
printf("\n请输入货物销售价:");
scanf("%f",&pt2->sales);
printf("\n请输入货物生产日期:");
scanf("%s",pt2->MFG);
printf("\n请输入货物和保质期:");
scanf("%s",pt2->EXP);
printf("\n请输入货物库存量;");
scanf("%d",&pt2->VMI);
printf("\n请输入货物销售数量;");
scanf("%d",&pt2->SV);
pt1=&pt2;
pt2->next=pt1->next;
}
pt1=pt1->next; }
}
}
------解决方案--------------------
在已经存储好数据的指针,要怎样改变它所指向的的值并且能将改正好的指针,能够很好的体现在一个链表里,其实就是链表里数据的修改要怎样完成,下面是我写的代码,错误可能会很多,多次修改还是不知道要怎样修改
主要就是红色的代码:
void changedata(linklist *L)
{
linklist *pt1, *pt2;
char str_num[20];
if(L->next==NULL)
{
printf("无需修改,该表为空表\n");
}
else
{
printf("请输入您要修改的编号信息:");
scanf("%s",str_num);
pt1=L->next;
pt2=(linklist*)malloc(sizeof(linklist));
while(pt1!=NULL)
{
if(strcmp(pt1->num,str_num)==0)
{
printf("\n输入添加货物的信息:");
printf("\n请输入货物编号:");
scanf("%s",&pt2->num);
printf("\n请输入货物名称:");
scanf("%s",&pt2->name);
printf("\n请输入货物进货价:");
scanf("%f",&pt2->purchase);
printf("\n请输入货物销售价:");
scanf("%f",&pt2->sales);
printf("\n请输入货物生产日期:");
scanf("%s",pt2->MFG);
printf("\n请输入货物和保质期:");
scanf("%s",pt2->EXP);
printf("\n请输入货物库存量;");
scanf("%d",&pt2->VMI);
printf("\n请输入货物销售数量;");
scanf("%d",&pt2->SV);
pt1=&pt2;
pt2->next=pt1->next;
}
pt1=pt1->next; }
}
}
------解决方案--------------------
void changedata(linklist *L)
{
linklist *pt1, *pt2;
char str_num[20];
if(L->next==NULL)
{
printf("无需修改,该表为空表\n");
}
else
{
printf("请输入您要修改的编号信息:");
scanf("%s",str_num);
pt1=L->next;
// pt2=(linklist*)malloc(sizeof(linklist));
while(pt1 != NULL)
{
if(strcmp(pt1->num,str_num)==0)
{
printf("\n输入添加货物的信息:");
printf("\n请输入货物编号:");
fscanf(STDIN, "%s", pt1->num);
printf("\n请输入货物名称:");
fscanf(STDIN, "%s", pt1->name);
printf("\n请输入货物进货价:");
fscanf(STDIN, "%f", &pt1->purchase);
printf("\n请输入货物销售价:");
fscanf(STDIN, "%f", &pt1->sales);
printf("\n请输入货物生产日期:");
fscanf(STDIN, "%s", pt1->MFG);
printf("\n请输入货物和保质期:");
fscanf(STDIN, "%s", pt1->EXP);
printf("\n请输入货物库存量;");