
有谁能帮我把下面的C语言程序改成c++程序吗?
程序是这样的:#include<stdio.h>structelem{intdata;elem*next;};voidmain(){inttemp;//head指向链表头...
程序是这样的:
#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;
}
} 展开
#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;
}
} 展开
2016-05-19
展开全部
你这能改也也只有输出的函数可以改了,但是改起来说简单也简单,说难也难.因为太多输出的了,工作量很大.你把#include换成#include没有.h然后在main函数前面加上usingnamespacestd;最后把所有printf改成cout<<,然后再把printf函数的那两个括号删除即可.如果要输出数字,如:printf("%d",12);那么需要把字符串截断,然后用<<连接即可,如:printf("\t\t|您一共玩了%d次|\n",win+lose+he);cout<<"\t\t|您一共玩了"<
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//C++程序:
#include<iostream>
using namespace std;
struct elem
{
int data;
elem *next;
};
void main()
{
int temp;//head指向链表头元素。tail指向链表最后元素,tempP是个临时存放地址
//frontP指向即将删除元素的前一个元素,deleteP指向将要删除的元素
elem * head,*tail,*tempP,*frontP,*deleteP; head=tail=NULL; //读取信息
cin >> 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;
}
cin >> 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)
{
cout << tempP->data << endl;
deleteP=tempP;
tempP=tempP->next;
delete deleteP;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询