急。。急急 。。哪位大神能帮我把C++语言转换成C语言呀 C++在下面

#include<iostream.h>#include<stdlib.h>typedefintElemType;#include"test8.h"voidmain(){... #include <iostream.h>
#include <stdlib.h>
typedef int ElemType;
#include "test8.h"

void main()
{
Queue q;
int i,x,n,a[80];
InitQueue(q);
EmptyQueue(q);
cout<<"输入n个数:"<<endl;
cout<<"n=";
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
EnQueue(q,a[i]);

cout<<"输出前两个数:"<<endl;
cout<<OutQueue(q)<<endl;
cout<<OutQueue(q)<<endl;
cout<<"输入一个数:"<<endl;
cin>>x;
EnQueue(q,x);
cout<<"查看余下的第一个数:"<<endl;
cout<<PeekQueue(q)<<endl;
cout<<"输出余下的数:"<<endl;
while(!EmptyQueue(q))
cout<<OutQueue(q)<<endl;
ClearQueue(q);
partner();
}

struct Queue{
ElemType *queue;
int front; // 队头指针
int rear; // 队尾指针
// int len; // 队列长度,可无
int MaxSize; //数组queue的长度
};

void InitQueue(Queue &Q)
{ //初始化循环队列Q
Q.MaxSize=80;
Q.queue=(ElemType *)malloc(sizeof(ElemType)*Q.MaxSize);
Q.rear=0;
Q.front=0;
}

int EmptyQueue(Queue Q)
{ //判断队列是否为空,空返回1,否则返回0
return Q.front == Q.rear;
}

void EnQueue(Queue &Q,ElemType item)
{ // 入队列
if((Q.rear+1)%Q.MaxSize==Q.front)
{ //若队列已满,重新分配2倍大的空间
Q.queue=(ElemType *)realloc(Q.queue,2*Q.MaxSize*sizeof(ElemType));
if(Q.rear!=Q.MaxSize-1) { //原队列尾部内容向后移
for(int i=0; i<=Q.rear; i++)
Q.queue[i+Q.MaxSize]=Q.queue[i];
Q.rear=Q.rear+Q.MaxSize;
}
Q.MaxSize=2*Q.MaxSize;
}
// 插入item
Q.rear=(Q.rear+1)%Q.MaxSize;
Q.queue[Q.rear]=item;
}

ElemType OutQueue(Queue &Q)
{ // 出队列
if(Q.front==Q.rear) //若空队列,则结束运行
{
cerr<< "队列已空,无法删除!" <<endl;
exit(1);
}
//删除队头元素,并返回该元素
Q.front=(Q.front+1)%Q.MaxSize;
return Q.queue[Q.front];
}

ElemType PeekQueue(Queue Q)
{ //读取队头元素
if(Q.front==Q.rear) //若空队列,则结束运行
{
cerr<<"队列已空,无法读取!"<<endl;
exit(1);
}
//返回队头元素
return Q.queue[(Q.front+1)%Q.MaxSize];
}

void ClearQueue(Queue &Q)
{ //清空队列
if (Q.queue!=NULL)
free(Q.queue);
Q.front=Q.rear=0;
Q.queue=NULL;
Q.MaxSize=0;
}

void partner()
{
Queue q1,q2;
int c;
char c1,c2;
InitQueue(q1);
InitQueue(q2);
EmptyQueue(q1);
EmptyQueue(q2);
cout<<"跳舞者的姓名和性别:"<<endl;
cin>>c1>>c2;
while(c1!='#'&& c2!='#'){
c=(int)c1;
if(c2=='F')
EnQueue(q1,c);
else
EnQueue(q2,c);
cin>>c1>>c2;
}
cout<<"配对的舞伴是:"<<endl;
while(EmptyQueue(q1)==0&&EmptyQueue(q2)==0)
cout<<(char)OutQueue(q1)<<" "<<(char)OutQueue(q2)<<endl;
if(EmptyQueue(q1)==1){
cout<<"男队还有人等待下一轮舞曲。"<<endl;
cout<<(char)OutQueue(q2);}
else {
cout<<"女队还有人等待下一轮舞曲。"<<endl;
cout<<(char)OutQueue(q1);}
cout<<"将是下一轮得到舞伴的第一人。";
}
展开
 我来答
虔诚还温和灬好汉8469
2012-07-10 · TA获得超过201个赞
知道答主
回答量:151
采纳率:0%
帮助的人:70.8万
展开全部
把cout该成printf()函数
把cin该成scanf()去掉<iostream>头文件就差不多了。
因为你上面的写法就是把C++当成C语言写的,所以基本不用怎么改。
真正的C++是用类,模板等来实现这些功能的
lbdf
2012-07-10
知道答主
回答量:4
采纳率:0%
帮助的人:6315
展开全部
将输入改成 printf
输入改成 scanf
其它的貌似没啥需要该的,,,
自己动手,丰衣足食,,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知名先生
2012-07-07
知道答主
回答量:43
采纳率:0%
帮助的人:19.3万
展开全部
楼主可以教我怎么写C语言吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6fe74e2
推荐于2016-08-08 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:260万
展开全部
#include "stdio.h"
#include <stdlib.h>
typedef int ElemType;
#include "test8.h"

void main()
{
Queue q;
int i,x,n,a[80];
InitQueue(q);
EmptyQueue(q);
printf("输入n个数:\n");
printf("n=");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);;
for(i=0;i<n;i++)
EnQueue(q,a[i]);

printf("输出前两个数:\n");
printf("%d\n",OutQueue(q));
printf("%d\n",OutQueue(q));
printf("输入一个数:\n");
scanf("%d",&x);
EnQueue(q,x);
printf("查看余下的第一个数:\n");
printf("%d\n",PeekQueue(q));
printf("输出余下的数:\n");
while(!EmptyQueue(q))
printf("%d\n",OutQueue(q));
ClearQueue(q);
partner();
}

struct Queue{
ElemType *queue;
int front; // 队头指针
int rear; // 队尾指针
// int len; // 队列长度,可无
int MaxSize; //数组queue的长度
};

void InitQueue(Queue &Q)
{ //初始化循环队列Q
Q.MaxSize=80;
Q.queue=(ElemType *)malloc(sizeof(ElemType)*Q.MaxSize);
Q.rear=0;
Q.front=0;
}

int EmptyQueue(Queue Q)
{ //判断队列是否为空,空返回1,否则返回0
return Q.front == Q.rear;
}

void EnQueue(Queue &Q,ElemType item)
{ // 入队列
if((Q.rear+1)%Q.MaxSize==Q.front)
{ //若队列已满,重新分配2倍大的空间
Q.queue=(ElemType *)realloc(Q.queue,2*Q.MaxSize*sizeof(ElemType));
if(Q.rear!=Q.MaxSize-1) { //原队列尾部内容向后移
for(int i=0; i<=Q.rear; i++)
Q.queue[i+Q.MaxSize]=Q.queue[i];
Q.rear=Q.rear+Q.MaxSize;
}
Q.MaxSize=2*Q.MaxSize;
}
// 插入item
Q.rear=(Q.rear+1)%Q.MaxSize;
Q.queue[Q.rear]=item;
}

ElemType OutQueue(Queue &Q)
{ // 出队列
if(Q.front==Q.rear) //若空队列,则结束运行
{
printf("队列已空,无法删除!\n");
exit(1);
}
//删除队头元素,并返回该元素
Q.front=(Q.front+1)%Q.MaxSize;
return Q.queue[Q.front];
}

ElemType PeekQueue(Queue Q)
{ //读取队头元素
if(Q.front==Q.rear) //若空队列,则结束运行
{
printf("队列已空,无法读取!\n");
exit(1);
}
//返回队头元素
return Q.queue[(Q.front+1)%Q.MaxSize];
}

void ClearQueue(Queue &Q)
{ //清空队列
if (Q.queue!=NULL)
free(Q.queue);
Q.front=Q.rear=0;
Q.queue=NULL;
Q.MaxSize=0;
}

void partner()
{
Queue q1,q2;
int c;
char c1,c2;
InitQueue(q1);
InitQueue(q2);
EmptyQueue(q1);
EmptyQueue(q2);
printf("跳舞者的姓名和性别:\n");
scanf("%c%c",&c1,&c2);
while(c1!='#'&& c2!='#'){
c=(int)c1;
if(c2=='F')
EnQueue(q1,c);
else
EnQueue(q2,c);
scanf("%c%c",&c1,&c2);
}
printf("配对的舞伴是:\n");
while(EmptyQueue(q1)==0&&EmptyQueue(q2)==0)
printf("%c %c\n",(char)OutQueue(q1),(char)OutQueue(q2));
if(EmptyQueue(q1)==1){
printf("男队还有人等待下一轮舞曲。\n");
printf("%c",(char)OutQueue(q2));}
else {
printf("女队还有人等待下一轮舞曲。\n");
printf("%c",(char)OutQueue(q1));}
printf("将是下一轮得到舞伴的第一人。\n");
}
大概就是这样,主要是换一下cout和cin函数就行了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式