c++编程,在编译时没问题,运行时,输入数据之后,程序就会弹出对话框“程序已停止工作”,为什么?
#include<iostream>#include<cstdlib>#include<cstdio>usingnamespacestd;structnote{intda...
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
struct note
{
int data;
note *next;
};
int main()
{
note *q,*p,*head,*t;
int a,n;
scanf("%d",&n);
head=NULL;
for(int i=1;i<=n;i++)
{
scanf("%d",&a);
p=(note *)malloc(sizeof(note));
p->data=a;
p->next=NULL;
if(head=NULL)
{
head=p;
}
else
{
q->next=p;
}
q=p;
}
t=head;
while(t!=NULL)
{
printf("%d",t->data);
t=t->next;
}
return 0;
} 展开
#include<cstdlib>
#include<cstdio>
using namespace std;
struct note
{
int data;
note *next;
};
int main()
{
note *q,*p,*head,*t;
int a,n;
scanf("%d",&n);
head=NULL;
for(int i=1;i<=n;i++)
{
scanf("%d",&a);
p=(note *)malloc(sizeof(note));
p->data=a;
p->next=NULL;
if(head=NULL)
{
head=p;
}
else
{
q->next=p;
}
q=p;
}
t=head;
while(t!=NULL)
{
printf("%d",t->data);
t=t->next;
}
return 0;
} 展开
展开全部
if(head==NULL)
{
head=p;
}
错在双等号表示等于判断,以后写NULL与变量的判断,NULL写在前面,NULL =head 这样就会报错,能够找到自己出错的地方,head =NULL 逻辑上错了,语法上正确,不易查找到出错点
{
head=p;
}
错在双等号表示等于判断,以后写NULL与变量的判断,NULL写在前面,NULL =head 这样就会报错,能够找到自己出错的地方,head =NULL 逻辑上错了,语法上正确,不易查找到出错点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2018-04-19
展开全部
这个是指针越界的提示。
if(head=NULL)
这里判断相等应该是两个等号
if(head=NULL)
这里判断相等应该是两个等号
追问
太感谢了,主要是自己太粗心大意了,总是把=和==弄混
太感谢了
追答
不客气
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(head = NULL)
{
head = p;
}
这里出错了。像这种写法,建议写成:
if(NULL == head)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你的程序有问题
追问
你看看人家一楼,解释的多详细,你就说一句有问题,我也知道有问题,说了等于白说!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询