程序是这样的:
#include<stdio.h>
struct elem
{
int data;
elem *next;
};
void main()
{
int temp;
//head指向链表头元素。tail指向链表最后元素,tempP是个临时存放地址
//frontP指向即将删除元素的前一个元素,deleteP指向将要删除的元素
elem * head,*tail,*tempP,*frontP,*deleteP;
head=tail=NULL;
//读取信息
scanf("%d",&temp);
while(-1!=temp)
{
if(head==NULL)
{
tail=head=new elem;
head->data=temp;
head->next=NULL;
}
else
{
tempP=new elem;
tempP->data=temp;
tempP->next=NULL;
tail->next=tempP;
tail=tempP;
}
scanf("%d",&temp);
}
//删除偶数
tempP=head;
while(NULL!=tempP)
{
if(0==tempP->data%2)
{
if(tempP==head)
{
head=tempP->next;
}
else
{
//找到偶数的前一个数,该数的next指向偶数的next;
for(frontP=head;NULL!=frontP;++frontP)
{
if(frontP->next==tempP)
{
frontP->next=tempP->next;
break;
}
}
}
}
deleteP=tempP;
tempP=tempP->next;
if(0==deleteP->data%2)
delete deleteP;
}
//打印数据
tempP=head;
while(NULL!=tempP)
{
printf("%d\n",tempP->data);
deleteP=tempP;
tempP=tempP->next;
delete deleteP;
}
}
不行啊,我自己也是这样子改的,但是输出会出现停止工作
你用的什么编译器,我用的VC6不会出现这样的情况啊,完美运行!
我用的devc++
然后提交到系统上的时候也说编译错误
系统上现在说格式错误。。。
已经是C++了怎么还会格式错误呢?搞不懂了
追问我也不懂,没事还是谢谢你啦😂
本回答被提问者采纳