请高手帮我把cout语句转换成c语言中的printf语句

for(j=1;j<=5;j++)cout<<*(L.elem+j-1)<<′′;cout<<endl;
2025-02-26 05:30:31
推荐回答(3个)
回答1:

这个没什么难度:-D,代码如下:
#include
using namespace std;

#define NULL 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef int Elemtype;//定义数据元素类型
typedef struct Cnode
{
Elemtype data;
struct Cnode *next;
}CNode;
CNode *joseph;//定义一个全局变量
Status Create_clist(CNode *clist,int n)
{
CNode *p,*q;
int i;
clist=NULL;
for(i=n;i>=1;i--)
{
p=(CNode *)malloc(sizeof(CNode));
if(p==NULL)
return OVERFLOW;//存储分配失败
p->data=i;
p->next=clist;
clist=p;
if(i==n)
q=p;//用q指向链表的最后一个结点
}
q->next=clist;//把链表的最后一个结点的链域指向链表的第一个结点,构成循环链表
joseph=clist;//把创建好的循环链表头指针赋给全局变量
return OK;
}///////////////////////////end
Status Joseph(CNode *clist,int m,int n,int k)
{
int i;
CNode *p,*q;
if(m>n)
return ERROR;//起始位置
if(!Create_clist(clist,n))
return ERROR;//循环链表创建失败
p=joseph;//*p指向创建号的循环链表
for(i=1;i p=p->next;//*p指向m位置的结点
while(p)
{
for(i=1;i p=p->next;//找出第k-1个结点
q=p->next;
cout<data;//输出应出列的结点
if(p->next==p)
p=NULL;//删除最后一个结点
else
{
p->next=q->next;
p=p->next;
free(q);
}
}//while
clist=NULL;
}//end
void main()
{
int m,n,k,i;
CNode *clist;
clist=NULL;//初始化clist
cout<<"\n请输入围坐在圆桌周围的人数n:";
cin>>n;
cout<<"\n请输入第一次开始报数人的位置m:";
cin>>m;
cout<<"\n你希望报数到第几个数的人出列?";
cin>>k;
Create_clist(clist,n);//创建一个有n个结点的循环链表clist
cout<<"\n出列的顺序如下:\n";
Joseph(clist,m,n,k);
cout<<"\n以下是数组算法输出结果:\n";

//数组实现部分,其实更简单O(∩_∩)O
int nCountOff=0,nLeave=0,*nArr=new int[n];
for(i=0;i for(i=m-1;nLeave {
i%=n;
if(nArr[i]) nCountOff++;//没出列的人报数
if(nCountOff==k)
{
nCountOff=0;
nArr[i]=0;//报数计数器能被k整除则出列
nLeave++;
cout< }
}
cout<}//main

方便对比,没有删除你原来的算法。
C++在语法上基本与C相同,只是在思想和功能上对C进行了扩充,多了一些概念和关键字。最主要的不同主要在于:
1.C++是面向对象的,有类的概念,包括成员函数、成员变量、继承等。而C是面向过程的,基本单位是函数。
2.C++支持重载和多态。即允许多个函数可以有相同的函数名,而函数实现可以完全不同
3.C++对于动态数组、指针操作上有new操作符,比C方便很多。
想要具体点的,请熟读课本吧:-D

回答2:

for(j=1;j<=5;j++)
printf("%d\n", *(L.elem+j-1)); //假设得到的是int类型

回答3:

一个语法错误的语句我不知道怎么翻译