| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1530 人关注过本帖
标题:有大神帮忙把C++改成C吗?感谢
取消只看楼主 加入收藏
别止
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-7-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
有大神帮忙把C++改成C吗?感谢
#include<iostream>
using namespace  std;
typedef int SElemType;
typedef struct {                        //建立顺序栈存储结构
SElemType *base;
SElemType *top;
int stacksize;
}Sqstack;
int init(Sqstack &s,int maxsize) //初始化
{
s.base=new  SElemType[maxsize];
if(!s.base)exit(1);
s.top=s.base;
s.stacksize=maxsize;
return 0;
}
int push(Sqstack &s,int e)  //入栈
{
if(s.top-s.base==s.stacksize)return 0;
else{*s.top=e;
s.top++;}
return 0;
}
int pop(Sqstack &s)  //出栈
{
int e;
if(s.top==s.base){return 0;}
else{e=*--s.top;}
return e;
}
int length(Sqstack &L)  //求栈长
{
 SElemType *p;
p=L.base;
for(int i=0;p!=L.top;i++)
{p++;}
return i;
}
int showout(Sqstack L)          //显示栈内所有元素
{
if(L.top==L.base)
{cout<<"货架已空"<<endl;
return 0;
}
SElemType *p;
for(p=L.base;p!=L.top;p++)
cout<<"商品"<<*p<<endl;
return 0;
}
int a,b,c;   //定义几个全局变量
int select(Sqstack &Q,Sqstack &S,Sqstack &D);
inital(Sqstack &Q,Sqstack &S,Sqstack &D)    //开始函数,建立货架,并存放商品
{
cout<<"请确定货架大小"<<endl;
cin>>a;
init(Q,a+1);   //货架
init(S,a+1);   //辅助货架
init(D,a+1);   //记录营业情况
cout<<"货架已经建立,请输入商品编号,生产日期早的编号小,先输入"<<endl;
c=1;    //初始化c,使每次输入都有效
for(int i=1;i<=a;i++)
{
cin>>b;
if(b<c){cout<<"编号不合法";inital(Q,S,D);}
push(S,b);       //入辅助栈
c=b;
}
for(i=1;i<=a;i++)
{int d;
d=pop(S);
push(Q,d);
}
cout<<"货架已经放满,可以开始营业"<<endl;
return 0;
}
int sell(Sqstack &Q,Sqstack &S,Sqstack &D)   //出售商品
{
if(Q.base==Q.top){cout<<"商品已经售空"<<endl;}
int f=pop(Q);
push(D,f);
cout<<"商品"<<f<<"已经售出"<<endl;
select(Q,S,D);
return 0;
}
int selectstate(Sqstack &Q,Sqstack &S,Sqstack &D)   

//查询营业情况
{
 cout<<"已经售出的商品"<<length(D)<<endl;
 cout<<"还有"<<length(Q)<<"件商品可以出售"<<endl;
 select(Q,S,D);
 return 0;
}
int getother(Sqstack &Q, Sqstack &S, Sqstack &D )   

//结束营业,并进货
{
 cout<<"营业时间"<<endl;
 if (D.top==D.base){cout<<"无需进货"<<endl;select(Q,S,D);}
    else cout<<"无需进货"<<length(D)<<"件"<<endl;
    for(int i=1;i<=a-length(D);i++)    //倒货到辅助栈

 {
  int j=pop(Q);
  push (S,j);
 }
 cout<<"请输入商品编号"<<endl;
 for(i=1;i<=length(D);i++)    //新商品入辅助栈

 {
  cin>>b;
  if(b<c){cout<<"编号有误"<<endl;getother(Q,S,D);}
  push(S,b);
  c=b;
 }
 for(i=1;i<<=a;i++)   //商品导入货架
 {
  int k=pop(S);
  push(Q,k);
 }
 D.top=D.base;    //初始化辅助栈
 cout<<"进货完成,可以开始营业"<<endl;
 select(Q,S,D);
 return 0;
}
int select(Sqstack &Q,Sqstack &S,Sqstack &D)  //功能旋转
{
 cout<<"----------------请选择操作----------------"<<endl;
 cout<<"1.出售商品     2.查看营业情况"<<endl;
cout<<"3.查看货架商品 2.结束营业并进货"<<endl;
cout<<"5.退出程序"<<endl;
int n;cin>>n;
if(n==1)sell(Q,S,D);
else if(n==2)selectstate(Q,S,D);
else if(n==3){showout(Q);select(Q,S,D);}
else if(n==4)getother(Q,S,D);
else if(n==5)exit(1);
else {cout<<"没有这个操作"<<endl;select(Q,S,D);}
return 0;
}
int main()
{
Sqstack Q,S,D;  //定义三个栈
inital(Q,S,D);
select(Q,S,D);
return 0;
}
搜索更多相关主题的帖子: int base return cout 商品 
2018-07-06 10:09
别止
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-7-6
收藏
得分:0 
回复 2楼 偏飞
谢谢,就是还是有错误,里面应该还有语法问题
2018-07-06 16:31
快速回复:有大神帮忙把C++改成C吗?感谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027118 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved