c语言作业 简单的计算器
发布网友
发布时间:2022-05-01 11:31
我来回答
共1个回答
热心网友
时间:2023-10-09 23:52
#include <stdio.h>
struct s_node
{
int data;
struct s_node *next;
};
typedef struct s_node s_list;
typedef s_list *link;
link operator=NULL;
link operand=NULL;
link push(link stack,int value)
{
link newnode;
newnode=(link) malloc(sizeof(s_list));
if(!newnode)
{
printf("\nMemory allocation failure!!!");
return NULL;
}
newnode->data=value;
newnode->next=stack;
stack=newnode;
return stack;
}
link pop(link stack,int *value)
{
link top;
if(stack !=NULL)
{
top=stack;
stack=stack->next;
*value=top->data;
free(top);
return stack;
}
else
*value=-1;
}
int empty(link stack)
{
if(stack==NULL)
return 1;
else
return 0;
}
int is_operator(char operator)
{
switch (operator)
{
case '+': case '-': case '*': case '/': return 1;
default:return 0;
}
}
int priority(char operator)
{
switch(operator)
{
case '+': case '-' : return 1;
case '*': case '/' : return 2;
default: return 0;
}
}
int two_result(int operator,int operand1,int operand2)
{
switch(operator)
{
case '+':return(operand2+operand1);
case '-':return(operand2-operand1);
case '*':return(operand2*operand1);
case '/':return(operand2/operand1);
}
}
void main()
{
char expression[50];
int position=0;
int op=0;
int operand1=0;
int operand2=0;
int evaluate=0;
printf("\nPlease input the inorder expression:");
gets(expression);
while(expression[position]!='\0'&&expression[position]!='\n')
{
if(is_operator(expression[position]))
{
if(!empty(operator))
while(priority(expression[position])<= priority(operator->data)&&
!empty(operator))
{
operand=pop(operand,&operand1);
operand=pop(operand,&operand2);
operator=pop(operator,&op);
operand=push(operand,two_result(op,operand1,operand2));
}
operator=push(operator,expression[position]);
}
else
operand=push(operand,expression[position]-48);
position++;
}
while(!empty(operator))
{
operator=pop(operator,&op);
operand=pop(operand,&operand1);
operand=pop(operand,&operand2);
operand=push(operand,two_result(op,operand1,operand2));
}
operand=pop(operand,&evaluate);
printf("The expression [%s] result is '%d' ",expression,evaluate);
getch();
}
用c语言程序设计一个简单计算器,求其源代码
rectangle( x, y, x + width, y + height );sprintf(str2, "%c", str1[j * 5 + i]);outtextxy( x + (width / 2), y + height / 2, str2);x += width + (width / 2);
如何用C语言编写一个简单的计算器?
1、首先在打开的C语言软件窗口中,在Main函数的上方,写上阶乘函数的框架,如下图所示。2、然后定义一个变量【result】,如下图所示。3、然后输入if判断语句,就可以写下程序的关键语句,如下图所示。4、接下来就可以调用输出,如下图所示。5、最后点击运行,如下图所示,就可以运行测试。
如何用C语言编程制作一个简易计算器?
1、打开CodeBlocks,新建一个空白文件,先定义头文件和主函数,接着写程序多大的主体:2、首先定义所需要的变量,将变量定义为浮点型,定义输入函数,将刚才的x和y定义为计算的变量,将c定义为选择计算方式的变量。用switch语句,将c作为选择变量,填写计算方式的选项,最后在主函数中输入一个输出函数来...
用C语言编写一个简单的计算器1
printf( "结果:%.2lf\n", ret ); return 0;} 写个简单易懂的,你操作计算器的步骤就是编写程序的思路呀
怎样用c语言编一个简单的计算器?最简单的
//简单计算器,含加减乘除、乘方运算。 #include<string.h> #include<ctype.h> #include<malloc.h> // malloc()等 #include<limits.h> // INT_MAX等 #include<stdio.h> // EOF(=^Z或F6),NULL #include<stdlib.h> // atoi() #include<io.h> // eof() #include<math.h> // floor(),ceil(...
C语言计算器 功能要求: 可以输入0-9数字、小数点、正负数 可以进行加 ...
下面是使用 C 语言设计简易科学计算器的示例代码:include <stdio.h> include <stdlib.h> include <math.h> int main(){ char op;double num1, num2;printf("请输入数学表达式(如:1 + 2):");scanf("%lf %c %lf", &num1, &op, &num2);switch (op){ case '+':printf("结果...
用C语言做一个计算器,能实现加减乘除混合运算?
是的,可以使用C语言编写一个计算器程序,能够实现加、减、乘、除等混合运算。下面是一个简单的示例程序:```c include <stdio.h> int main() { char operator;double num1, num2, result;printf("Enter an operator (+, -, *, /): ");scanf("%c", &operator);printf("Enter two ...
怎么用C语言编写计算器程序?
<?xml version="1.0" encoding="UTF-8"?></</</#include <stdio.h></int main() {</ char operator;</ double num1, num2, result;</ printf("欢迎来到C语言计算器!请输入运算符 (+, -, *, /): ");</ scanf("%c", &operator);</ printf("请输入两个数...
c语言设计一个简单的计算器程序
scanf("%d%d",&i,&j);//输入要计算的数值 switch(select){ case1:printf("%d+%d=%d\n",i,j,num=i+j);//实现加法功能 break;case2:printf("%d-%d=%d\n",i,j,num=i-j);//实现减法功能 break;case3:printf("%d*%d=%d...
用C语言做一个计算器,能实现加减乘除混合运算
用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器的方法:1、打开visual C++ 6.0-文件-新建-文件-C++ Source File;2、输入预处理命令和主函数:include<stdio.h> /*函数头:输入输出头文件*/ void main()/*空类型:主函数*/ 3、定义变量:int a,b,d; /*定义变量的数据类型为...