C语言问题,利用堆栈实现四则运算,谢谢高手帮我编写出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言问题,利用堆栈实现四则运算,谢谢高手帮我编写出来相关的知识,希望对你有一定的参考价值。

如题高手编写 高分感谢
呵呵,先谢谢你,我不是计算机专业的学生,学校给我们开的C语言,我们真的没有什么兴趣,但是不完成也没有办法,只好这样了!!

我就喜欢害人:)

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define ERR -1
#define MAX 100 /*定义堆栈的大小*/
int stack[MAX]; /*用一维数组定义堆栈*/
int top=0; /*定义堆栈指示*/

int push(int i) /*存储运算数,入栈操作*/

if(top<MAX)

stack[++top]=i; /*堆栈仍有空间,栈顶指示上移一个位置*/
return 0;

else

printf("The stack is full");
return ERR;


int pop() /*取出运算数,出栈操作*/

int var; /*定义待返回的栈顶元素*/
if(top!=NULL) /*堆栈中仍有元素*/

var=stack[top--]; /*堆栈指示下移一个位置*/
return var; /*返回栈顶元素*/

else
printf("The stack is empty!\n");
return ERR;

void main()

int m,n;
char l;
int a,b,c;
int k;
do
printf("\tAriothmatic Operate simulator\n"); /*给出提示信息*/
printf("\n\tPlease input first number:"); /*输入第一个运算数*/
scanf("%d",&m);
push(m); /*第一个运算数入栈*/
printf("\n\tPlease input second number:"); /*输入第二个运算数*/
scanf("%d",&n);
push(n); /*第二个运算数入栈*/
printf("\n\tChoose operator(+/-/*//):");
l=getche(); /*输入运算符*/
switch(l) /*判断运算符,转而执行相应代码*/

case '+':
b=pop();
a=pop();
c=a+b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
case '-':
b=pop();
a=pop();
c=a-b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
case '*':
b=pop();
a=pop();
c=a*b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
case '/':
b=pop();
a=pop();
c=a/b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;

printf("\tContinue?(y/n):"); /*提示用户是否结束程序*/
l=getche();
if(l=='n')
exit(0);
while(1);
参考技术A 定你个__int64,你也太幽默了…… 参考技术B 偷懒的学生啊。
数据结构的上机作业吧?

我写过,不帮你。
帮你是害你。

c语言程序设计 题目:某医药公司售货系统 求C语言高手帮下忙,成功后高分奖励,谢谢

用C语言编写软件实现医药公司售货的数字化管理,用户界面中的菜单至少应包括“药品信息录入”、“顾客买药处理”、“查询某种药品销售信息”、“退出”4项。录入药品信息中药包括药品的编号、生产厂家、进价、售价、剩余数量及售出数量等;顾客买药处理模块能够按顾客要求销售某种药品、要考虑药品剩余数量不足的情况;查询模块能够按药品名称查询某日某种药品的销售情况。
这里有个模板,但是少了编号、生产厂家、价格等等,希望高手帮小弟一下忙。
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
typedef struct
char name[10];
int num1;//num1指库存数量
int num2;//num2指销售数量
medicine;
int n;
void input(medicine med[]);
void buy(medicine med[]);
void find(medicine med[]);
void main()

medicine med[100];
char flag;
n=0;
while(1)

printf("********************************************\n");
printf("* 小型药品管理程序 *\n");
printf("* 1.药品信息录入 2.顾客买药处理 *\n");
printf("* 3.查询药品信息 4.退出 *\n");
printf("* 请选择1-4: *\n");
printf("********************************************\n");
fflush(stdin);
scanf("%d",&flag);
switch(flag)

case 1:input(med);break;
case 2:buy(med);break;
case 3:find(med);break;
case 4:exit(0);
default:printf("错误\n");





void input(medicine med[])

printf("请输入药品信息:\n");
while(1)

printf("药品 %d 的名称:",n+1);
fflush(stdin);
gets(med[n].name);
if(strcmp(med[n].name,"0")==0)break;
printf("药品 %d 的库存量:",n+1);
scanf("%d",&med[n].num1);
printf("药品 %d 的售出量:",n+1);
scanf("%d",&med[n].num2);
n++;



void buy(medicine med[])

int i,number;
char a[10];
char flag2=0;
printf("请输入你要买药品的名称:\n");
fflush(stdin);
gets(a);
for(i=0;i<n;i++)

if(strcmp(a,med[i].name)==0)

flag2=1;
printf("你要买多少:\n");
scanf("%d",&number);
if(number>med[i].num1)

printf("库存量不足!\n");

else

med[i].num2+=number;
med[i].num1-=number;
printf("完成!\n");

break;



if(flag2==0)

printf("找不到该药品信息!\n");



void find(medicine med[])

int i;
char a[10];
char flag2=0;
printf("你所要找药品的名称\n");
fflush(stdin);
gets(a);
for(i=0;i<n;i++)

if(strcmp(a,med[i].name)==0)

flag2=1;
printf("%s 药品已经售出 %d,库存量还剩 %d\n",med[i].name,med[i].num2,med[i].num1);
break;


if(flag2==0)

printf("找不到该药品信息!\n");


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
typedef struct

char name[10];//编号
char productor[20];//厂家
float jinjia;
float shoujia;
int num1;//num1指库存数量
int num2;//num2指销售数量
medicine;

int n;
void input(medicine med[]);
void buy(medicine med[]);
void find(medicine med[]);
void main()

medicine med[100];
char flag;
n=0;
while(1)

printf("********************************************\n");
printf("* 小型药品管理程序 *\n");
printf("* 1.药品信息录入 2.顾客买药处理 *\n");
printf("* 3.查询药品信息 4.退出 *\n");
printf("********************************************\n");
printf("* 请选择1-4: *\n");
fflush(stdin);
scanf("%d",&flag);
switch(flag)

case 1:input(med);break;
case 2:buy(med);break;
case 3:find(med);break;
case 4:exit(0);
default:printf("错误\n");





void input(medicine med[])

printf("请输入药品信息(编号输入0表示结束):\n");
while(1)

printf("药品 %d 的名称:",n+1);
fflush(stdin);
gets(med[n].name);
if(strcmp(med[n].name,"0")==0)
break;
printf("药品 %d 的生产商:",n+1);
scanf("%s",&med[n].productor );
printf("药品 %d 的进价:",n+1);
scanf("%f",&med[n].jinjia );
printf("药品 %d 的售价:",n+1);
scanf("%f",&med[n].shoujia );
printf("药品 %d 的库存量:",n+1);
scanf("%d",&med[n].num1);
printf("药品 %d 的售出量:",n+1);
scanf("%d",&med[n].num2);
n++;



void buy(medicine med[])

int i,number;
char a[10];
char flag2=0;
printf("请输入你要买药品的编号:\n");
fflush(stdin);
gets(a);
for(i=0;i<n;i++)

if(strcmp(a,med[i].name)==0)

flag2=1;
printf("你要买多少:\n");
scanf("%d",&number);
if(number>med[i].num1)

printf("库存量不足!\n");

else

printf("售价为%.2f\n",med[i].shoujia );
med[i].num2+=number;
med[i].num1-=number;
printf("完成!\n");

break;



if(flag2==0)

printf("找不到该药品信息!\n");



void find(medicine med[])

int i;
char a[10];
char flag2=0;
printf("你所要找药品的编号\n");
fflush(stdin);
gets(a);
for(i=0;i<n;i++)

if(strcmp(a,med[i].name)==0)

flag2=1;
printf("%s 药品已经售出 %d,还剩 %d\n",med[i].name,med[i].num2,med[i].num1);
printf("该药品获利%.2f\n:",med[i].num2 *(med[i].shoujia -med[i].jinjia ));
break;


if(flag2==0)

printf("找不到该药品信息!\n");


参考技术A 不会帮顶

以上是关于C语言问题,利用堆栈实现四则运算,谢谢高手帮我编写出来的主要内容,如果未能解决你的问题,请参考以下文章

C语言 四则运算 各位C语言高手帮忙做下这题!!谢谢谢谢谢谢

怎么用C语言编写堆栈并能进行四则运算

用堆栈来实现四则运算.(C语言)

高手啊 求救求救啊帮我用c语言编写个先进先出的算法 急需啊

我需要一个用Java编写的程序:集合的并、交和差运算。不知道你能不能帮我,谢谢!!!

谁能帮我说下C语言中的堆栈