当前位置:首页 » 编程语言 » 用c语言设计计算器
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

用c语言设计计算器

发布时间: 2022-02-04 23:43:25

㈠ 用c语言设计并实现一个简单计算器

额,搞定了。

你交给老师的时候,你要告诉他for循环的功能,for()循环体里也就是for下方{}大括号里的代码要被循环执行。然后你就一行一行的解释 switch()里的语句就行了。

break表示跳出switch()。

至于int a,b,i; 这些你肯定懂了的吧。

最后那里表示在主函数 main()里调用自定义的函数

#include <stdio.h>

int calculator() //定义一个函数。完成计算功能

{

int a,b, i;

char c;

for(i=0;;i++)

{

printf("请输入所要计算的两个数,以及所要执行的计算符号 ");

scanf("%d %d %c", &a,&b,&c);

switch (c)

{

case '+':

printf("所要计算的式子:%d+%d ",a,b);

a = a + b;printf("计算结果为:%d ",a);

break;

case '-':

printf("所要计算的式子:%d-%d ",a,b);

a = a - b;printf("计算结果为:%d ",a);

break;

case '*':

printf("所要计算的式子:%d*%d ",a,b);

a = a * b;printf("所要计算的式子:%d*%d ",a,b);printf("计算结果为:%d ",a);

break;

case '/':

printf("所要计算的式子:%d/%d ",a,b);

a = a / b;printf("所要计算的式子:%d/%d ",a,b);printf("计算结果为:%d ",a);

break;

}

}

}

int main()

{

calculator();//在main()函数里调用自定义的函数calculator

}

㈡ 用C语言编写一个简单的计算器1

#include<stdio.h>
int main() {
double num1 = 0; //输入1
double num2 = 0; //输入2
char ch; //操作
double ret = 0; //结果 printf( "输入第一个数:" );
scanf( "%lf", &num1 );
printf( "输入第二个数:" );
scanf( "%lf", &num2 );
printf( "操作[+ - * /]:" );
getchar();
scanf( "%c", &ch ); switch( ch ) {
case '+':
ret = num1 + num2;
break;
case '-':
ret = num1 - num2;
break;
case '*':
ret = num1 * num2;
break;
case '/':
ret = num1 / num2;
break;
default:
break;
}
printf( "结果:%.2lf\n", ret ); return 0;
} 写个简单易懂的,你操作计算器的步骤就是编写程序的思路呀

㈢ 用C语言设计一个简单计算器

#include<stdio.h>
voidadd(inta,intb,intc)
{
c=a+b;
printf("%d ",c);
printf(" ");
}
voidminus(inta,intb,intc)
{
c=a-b;
printf("%d ",c);
printf(" ");
}
voidmultiplication(inta,intb,intc)
{
c=a*b;
printf("%d ",c);
printf(" ");
}
voiddiv(inta,intb,intc)
{
c=(float)a/(float)b;
printf("%f ",c);
printf(" ");
}
main()
{
inta,b,c;
charp;
puts("inputA: ");
scanf("%d",&a);
puts("inputB: ");
scanf("%d",&b);
puts("inputoperation: ");
getchar();
p=getchar();
if(p=='+')add(a,b,c);else
if(p=='-')minus(a,b,c);else
if(p=='*')multiplication(a,b,c);else
if(p=='/')div(a,b,c);else
puts("没有注册这个运算符号 ");
}

以上是设计的一个简易计算器。可以进行相应的加减乘除。

㈣ 用简单c语言编写计算器

#include"stdio.h"
/*预处理命令*/
void
main()
/*主函数*/
{
double
a,b;
/*双精度实型变量说明*/
char
c,d;
/*变量说明*/
do
/*循环体*/
{
printf("input
a
(-*/)b\n");
/*输入提示*/
scanf("%lf%c%lf",&a,&c,&b);
/*输入算术表达式*/
if(c=='
')
/*判断
*/
printf("=%0.2f",a
b);
/*输出a
b的值*/
else
if(c=='-')
/*判断-*/
printf("=%0.2f",a-b);
/*输出a-b的值*/
else
if(c=='*')
/*判断**/
printf("=%0.2f",a*b);
/*输出a*b的值*/
else
if(c=='/')
/*判断/*/
printf("=%0.3f",a/b);
/*输出a/b*/
else
/*不满足以上条件*/
printf("error");
/*输出错误*/
printf("\n\ninput\n");
/*输入\n*/
scanf("%c",&d);
/*输入符号给d*/
}
/*循环体结束*/
while(d=='\n');
/*循环条件语句*/
}

㈤ 用C语言编写计算器程序

http://www.softhouse.com.cn/html/200509/2005091911241600011153.html这个页面可能对你有帮助。

㈥ 用C语言设计计算器

w=aqb;
这不能这样的 ......编译器会以为aqb是一个变量 却发现前面你没定义这样一个变量 结果就报错了

#include<stdio.h>
main()
{
float a,b,w;
char q;/*q代表运算符号*/
printf("请输入计算式\n");
scanf("%f%c%f",&a,&q,&b);
switch (q)
{
case '+':w=a+b;break;
case '-':w=a-b;break;
case '*':w=a*b;break;
case '/':w=a/b;break;
default:printf("错误的运算符\n");
}
printf("w=%.4f\n",w);
}
。。。。。。。。。。。。。。。。。。
不行的。。。c没有这种语法也没这种功能,只能自己有switch或if实现

㈦ 如何用C语言编写一个科学计算器

用栈 就可以办到了。。。这个很详细的, lz 随便输入一个表达式,中间的计算过程全部输出了,lz试两个 就知道怎么回事了。 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 4000;
typedef struct
{
char data[10];
int top;//头地址

int base;//基地址

int length;//长度

}Stack;

void init(Stack *st)//初始化栈

{
st->base=0;
st->top=0;
st->length=0;
}

int isEmpty(Stack *st)
{
int n=0,top,base;
top =st->top;
base =st->base;
if(top==base)
{
return 1;
}
return n;
}

int isFull(Stack *st)
{
int n=0,top,base;
top =st->top;
if(top>=4000)
{
return 1;
}
return n;
}

char getTop(Stack *st)// 返回top值,不改变栈的结构

{
char n;
if(isEmpty(st))
{
printf("栈为空\n");
return 0;
}
int positon= st->top-1;
n= st->data[positon];//取出数据;

return n;
}

char pop(Stack *st)// 出栈,返回

{
char n;
if(isEmpty(st))
{
printf("栈为空\n");
return 0;
}
int positon= st->top-1;
n= st->data[positon];//取出数据;

st->top--;
st->length--;
st->data[positon]='\0';//消除数据

return n;
}

void push(char n,Stack *st)//入栈

{
int positon ;
if(isFull(st))
{
printf("栈满\n");

}
else
{
positon= st->top;//获取位置

st->data[positon]=n;//存入数据

st->top++;//改变位置

}

}

void show(Stack *m1)//输出栈中的数据

{
int top,base;
top=m1->top;
base=m1->base;
while(top>base)
{
printf("%c,",m1->data[--top]);
}
printf("\n");
}

int isOperate(char temp)//是否是操作符

{
if(temp=='+'||temp=='-'||temp=='*'||temp=='/'||temp=='('||temp==')'||temp=='#')
{
return 1;
}
return 0;
}

int isValue(char temp)//是否是数值

{
if(temp>='0'&&temp<='9')//

{
return 1;
}
else
{
return 0;
}
}

int isAvail(char temp)//是否有效字符

{
if(isOperate(temp)||isValue(temp))//如果temp既不是操作符和数值的话,则它是非法的

{
return 1;
}
return 0;
}

int detect(char temp)//搜索矩阵位置

{
int i=0;
char oper[7]={'+','-','*','/','(',')','#'};
for(i=0;i<7;i++)
{
if(temp==oper[i])
{
return i;
}
}
}

char Priority(char temp,char optr)//判断优先级

{
/**//*
+ - * / ( ) #
1 2 3 4 5 6 7
+ 1 < < < < > > >
- 2 < < < < > > >
* 3 > > < < > > >
/ 4 > > < < > > >
( 5 > > > > > = 0
) 6 < < < < = 0 >
# 7 < < < < > 0 =
*/
int row ,col;
char priority[7][7]={/**//* + - * / ( ) # */
{'<','<','<','<','>','>','>'},

{'<','<','<','<','>','>','>'},

{'>','>','<','<','>','>','>'},

{'>','>','<','<','>','>','>'},

{'>','>','>','>','>','=','>'},

{'<','<','<','<','=','0','>'},

{'<','<','<','<','>','<','='},
};

row = detect(temp);//找出对应的矩阵下标;

col = detect(optr);
// printf("%d,%d",row,col);

//优先级存储在一个7x7的矩阵中,对应关系上图;

return priority[row][col];

}
char evaluate(int a,int b,char oper)
{
switch(oper)
{
case '+': return a+b+'0';
case '-': return a-b+'0';
case '*': return a*b+'0';
case '/': return a/b+'0';
default : return 0+'0';
}
}
int calculateExpress(char *express)//计算表达式

{
int result=0;
int a,b;
// char oper,result;

Stack OPTR,OPND;//OPTR存储操作符,OPND操作数值

init(&OPTR);
init(&OPND);
push('#',&OPTR);//默认第一个位'#'

////////////////////-算法-////////////////////////////

while(*express!='\0')
{
char temp;
temp= *(express);
printf("---------------------------------\n");
printf("当前的符号为%c\n",temp);
if(isAvail(temp))//是否是有效字符

{
if(isOperate(temp) )//输入的是操作符

{
char oper,result;
char optr = getTop(&OPTR);//栈中top位的操作符

printf("栈顶操作符位:%c\n",optr);
char prior = Priority(temp,optr);//判断优先级

switch(prior)
{
case '>':
push(temp,&OPTR);
printf("将符号位%c入栈\n",temp);
express++;
break;
case '<':
//int a,b;

//char oper,result;

a=pop(&OPND)-'0';//存在栈中的都是char字符

b=pop(&OPND)-'0';
oper=pop(&OPTR);

result=evaluate(b,a,oper);//出栈一个操作符,计算结果

//printf("%d",result-'0');

push(result,&OPND);//结果入OPND

printf("%d%c%d结果为:%d\n",b,oper,a,result-'0');
break;

case '=':
//消除括号

pop(&OPTR);
printf("消除括号\n");
express++;
break;

}

}
if(isValue(temp))//输入的是数值

{
push(temp,&OPND);//将数值位入栈;

express++;
printf("将数值%c压入栈\n",temp);
//show(&OPND);

}
}
else //表达式中有非法字符

{
printf("表达式中有非法字符\n");
exit(-1);//退出程序

}

}
// show(&OPND);

// show(&OPTR);

return getTop(&OPND)-'0';
}

void inputExpress(char *express)//输入表达式

{
int length=0;
printf("请输入一个表达式:");
scanf("%s",express);
int len =strlen(express);
express[len]='#';//表达式最后一位默认为'#';

express[len+1]='\0';

}

void output(char *express,int result)//输出表达式

{
int i=0;
printf("----------------------------------------\n表达式:");
while(express[i]!='#')
{
printf("%c",express[i]);
i++;
}
printf("=%d\n",result);

}

int main()
{

char express[100];//表达式

int result =0;

inputExpress(express);//输入表达式

result = calculateExpress(express);//计算表达式;

output(express,result); //输出表达式

//、、、、、、、、、、、、、测试优先级。

/**//*
char m='7' ;
m=Priority('+','*');
printf("优先级为%c",m);

int m=evaluate(5,6,'m');
printf("%d",m);
*/
return 0;
}

㈧ 如何用C语言设计一个程序模拟有图形界面的计算器

  • 首先,打开Vs 2010,如图

㈨ 利用c语言设计开发一个简单计算器,可进行加减乘除运算。

#include<stdio.h>
int main()
{ long a,b,r;
char c;
scanf("%ld%c%ld",&a,&c,&b);
switch(c)
{
case'+':r=a+b;break;
case'-':r=a-b;break;
case'*':r=a*b;break;
case'/':if(b!=0) r=a/b;
else printf("error");break;
default:printf("error");
}
printf("=%ld",r);
return 0;
}
我运行过,正确的,你试试

㈩ 急求啊 用c语言设计一个简单计算器

#include<stdio.h>
void add(int a,int b,int c)
{
c=a+b;
printf("%d+%d = %d",a,b,c);
printf("\n");
}
void minus(int a,int b,int c)
{
c=a-b;
printf("%d-%d=%d",a,b,c);
printf("\n");
}
void multiplication(int a,int b,int c)
{
c=a*b;
printf("%d*%d=%d",a,b,c);
printf("\n");
}
void div(int a,int b,int c)
{
(float)c=(float)a/(float)b;
printf("%f/%f=%f",a,b,c);
printf("\n");
}
main()
{
int a,b,c;
char p;
printf("请输入数字 A:");
scanf("%d",&a);
printf("请输入数字 B:");
scanf("%d",&b);
printf("请输入运算的符号:");
getchar();
p=getchar();
if(p=='+') add(a,b,c);else
if(p=='-') minus(a,b,c);else
if(p=='*') multiplication(a,b,c);else
if(p=='/') div(a,b,c);else
puts("没有注册这个运算符号\n");
}