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 <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语言高手帮忙做下这题!!谢谢谢谢谢谢