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

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

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

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

    {
        scanf("%d",&b);
        if (b < c)
        {
            printf("编号有误\n");
            getother(Q, S, D);
        }
        push(S, b);
        c = b;
    }
    for (int i = 1; i <<= a; i++)   //商品导入货架
    {
        int k = pop(S);
        push(Q, k);
    }
    D.top = D.base;    //初始化辅助栈
    printf("进货完成,可以开始营业\n");
    select(Q, S, D);
    return 0;
}
int select(Sqstack &Q, Sqstack &S, Sqstack &D)  //功能旋转
{
    printf("----------------请选择操作----------------\n");
    printf("1.出售商品     2.查看营业情况\n");
    printf("3.查看货架商品 2.结束营业并进货\n");
    printf("5.退出程序\n");
    int n;
    scanf("%d",&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
    {
        printf("没有这个操作\n");
        select(Q, S, D);
    }
    return 0;
}
int main()
{
    setbuf(stdout, NULL);
    Sqstack Q, S, D;  //定义三个栈
    inital(Q, S, D);
    select(Q, S, D);
    return 0;
}


[此贴子已经被作者于2018-7-6 13:53编辑过]

2018-07-06 13:47
别止
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-7-6
收藏
得分:0 
回复 2楼 偏飞
谢谢,就是还是有错误,里面应该还有语法问题
2018-07-06 16:31
偏飞
Rank: 2
等 级:论坛游民
威 望:1
帖 子:10
专家分:49
注 册:2018-7-6
收藏
得分:0 
回复 3楼 别止
再看一下这个,应该没有语法错误了
程序代码:
/*

 * sf->c

 *

 *  Created on: Jul 6, 2018

 *      Author: Administrator

 */

#include<stdio.h>
#include<stdlib.h>
typedef int SElemType;
typedef struct
{                        //建立顺序栈存储结构
    SElemType *base;
    SElemType *top;
    int stacksize;
} Sqstack;
int init(Sqstack *s, int maxsize) //初始化
{
    s->base = (SElemType*)malloc(maxsize*sizeof(SElemType));
    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;
    int i;
    p = L->base;
    for (i = 0; p != L->top; i++)
    {
        p++;
    }
    return i;
}
int showout(Sqstack *L)          //显示栈内所有元素
{
    if (L->top == L->base)
    {
        printf("货架已空\n");
        return 0;
    }
    SElemType *p;
    for (p = L->base; p != L->top; p++)
        printf("商品  %d\n",*p);
    return 0;
}
int a, b, c;   //定义几个全局变量
int select(Sqstack *Q, Sqstack *S, Sqstack *D);
int inital(Sqstack *Q,Sqstack *S,Sqstack *D)    //开始函数,建立货架,并存放商品
{
    printf("请确定货架大小\n");
    scanf("%d",&a);
    init(Q,a+1);   //货架
    init(S,a+1);//辅助货架
    init(D,a+1);//记录营业情况
    printf("货架已经建立,请输入商品编号,生产日期早的编号小,先输入\n");
    c=1;//初始化c,使每次输入都有效
    for(int i=1;i<=a;i++)
    {
        scanf("%d",&b);
        if(b<c)
        {    printf("编号不合法\n");inital(Q,S,D);}
        push(S,b);       //入辅助栈
        c=b;
    }
    for(int i=1;i<=a;i++)
    {    int d;
        d=pop(S);
        push(Q,d);
    }
    printf("货架已经放满,可以开始营业\n");
}
int sell(Sqstack *Q, Sqstack *S, Sqstack *D)   //出售商品
{
    if (Q->base == Q->top)
    {
        printf("商品已经售空\n");
    }
    int f = pop(Q);
    push(D, f);
    printf("商品  %d 已经售出\n",f);
    select(Q, S, D);
    return 0;
}
int selectstate(Sqstack *Q, Sqstack *S, Sqstack *D)

//查询营业情况
{
    printf("已经售出的商品 %d ",length(D));
    printf("还有 %d 件商品可以出售\n",length(Q) );
    select(Q, S, D);
    return 0;
}
int getother(Sqstack *Q, Sqstack *S, Sqstack *D)

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

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

    {
        scanf("%d",&b);
        if (b < c)
        {
            printf("编号有误\n");
            getother(Q, S, D);
        }
        push(S, b);
        c = b;
    }
    for (int i = 1; i <<= a; i++)   //商品导入货架
    {
        int k = pop(S);
        push(Q, k);
    }
    D->top = D->base;    //初始化辅助栈
    printf("进货完成,可以开始营业\n");
    select(Q, S, D);
    return 0;
}
int select(Sqstack *Q, Sqstack *S, Sqstack *D)  //功能旋转
{
    printf("----------------请选择操作----------------\n");
    printf("1.出售商品     2.查看营业情况\n");
    printf("3.查看货架商品 2.结束营业并进货\n");
    printf("5.退出程序\n");
    int n;
    scanf("%d",&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
    {
        printf("没有这个操作\n");
        select(Q, S, D);
    }
    return 0;
}
int main()
{
    setbuf(stdout, NULL);
    Sqstack Q, S, D;  //定义三个栈
    inital(&Q, &S, &D);
    select(&Q, &S, &D);
    return 0;
}

2018-07-06 17:44
快速回复:有大神帮忙把C++改成C吗?感谢
数据加载中...
 
   



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

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