printf("%d\n",last->xvhao);
printf("%d\n",last->xvhao);
printf("%d\n",last->xvhao);
这是我在程序中连续输出的“last->xvhao”,结果只有第一个正确,后两个值变了!但后两个值是相等的,以我现在的知识,这种现象是无法理解的!!清高人帮忙啊
程序很复杂啊,三百多行呢,如果没有附初值,第一个为什么正确呢,那也不应该输出不一样啊,我把部分代码贴出来
}
int main()
{
int xuanxiang=0;
geshou *a=(geshou*)malloc((sizeof(geshou))),*last;
a->xvhao=0;last=a;a->next=NULL;
printf(" while(5)
{
printf("请选择服务项:");
scanf("%d",&xuanxiang);
if(xuanxiang>8||xuanxiang<0)
printf("无效选项,请重新输入!\n");
switch(xuanxiang)
{
case 1:
printf("%d",last->xvhao);
last=newput(last);
break;
case 2:
last=shanchu(a,last); break;
case 3:
pingfen(a);break;
case 4:
yuanshi(a,last);break;
case 5:
defen(a);
paiming1(a,last);
zuizhongpaiming(a,last);break;
case 6:
yuanshishujvxianshi(a);break;
case 7:
last=paimingxianshi(a,last);
printf("%d\n",last->xvhao);
printf("%d\n",last->xvhao);
printf("%d\n",last->xvhao);
printf("%d\n",last->xvhao);
break;
case 8:
return 0;
}
}
return 0;
}