急。。急急 。。哪位大神能帮我把C++语言转换成C语言呀 C++在下面
发布网友
发布时间:2024-10-23 20:38
我来回答
共4个回答
热心网友
时间:2024-11-02 08:21
把cout该成printf()函数
把cin该成scanf()去掉<iostream>头文件就差不多了。
因为你上面的写法就是把C++当成C语言写的,所以基本不用怎么改。
真正的C++是用类,模板等来实现这些功能的
热心网友
时间:2024-11-02 08:26
楼主可以教我怎么写C语言吗?
热心网友
时间:2024-11-02 08:19
#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函数就行了。
热心网友
时间:2024-11-02 08:25
将输入改成 printf
输入改成 scanf
其它的貌似没啥需要该的,,,
自己动手,丰衣足食,,,