请大家帮我看看这个程序,出什么问题了
我做了个动态链表的加法程序!做这个程序的时候,我考虑到平时加法中需要用到实型数据!但是在编写调试的过程中,我发现我的系统不能使用实型数据!
如果使用实型数据,那么产生的EXE文件,执行后,结果是这样:输入任意数字和0后,就结束了!也就是说没有结果!
请各位高手帮我看看!我用的软件是WINTC
#include "malloc.h"
#include "Stdio.h"
#define PR printf
#define SC scanf
int n=0,m=0;
struct no
{
int num;
struct no *next;
};
main(void)
{
int add(struct no*pp1);
struct no *creat();
struct no *p,*head;
int a;
PR("Please enter your number!\n");
head=creat();
a=add(head);
printf("Sum is %d\n",a);
getch();
return 0;
}
struct no *creat()
{
struct no *p1,*p2,*head;
p1=p2=(struct no*)malloc(sizeof(struct no));
SC("%d",&p1->num);
if(p1->num!=0)
head=p1;
for(;p1->num!=0;n++)
{
p1=(struct no*)malloc(sizeof(struct no));
SC("%d",&p1->num);
p2->next=p1;
p2=p1;
}
printf("n=%d\n",n);
return(head);
}
int add(struct no *pp1)
{
struct no *pp2;
int an=0;
for(;pp1->num!=0;m++)
{
an=an+pp1->num;
pp2=pp1->next;
pp1=pp2;
}
printf("m=%d\n",m);
return(an);
}