A. 求一个简单计算器的c语言程序
#include
#include
#include
#include
#define MaxQSize 80
float qlist[MaxQSize],qlist1[MaxQSize],qlist2[MaxQSize]; //定义三个全局队列
int front=0,rear=0,front1=0,front2=0,rear1=0,rear2=0,count=0,count1=0,count2=0;//定义三个队列头结点、尾结点、数据个数
main()
{
char c[80];
void Enter(float),pop(),ClearStack();
printf("input string:(n:sin,o:cos,s:sqrt)\n");
while(gets(c),*c!='q' ||*c!='Q')
{
switch(*c)
{
case '+':
case '*':
case 's':
case 'n': //求SIN
case 'o': //求COS
case '/': //将符号入第一个队列
{
if(count==MaxQSize)
{
printf("Quere overflow!");
exit(1);
}
count++;
qlist[rear]=*c;
rear=(rear+1)%MaxQSize;
break;}
case '-':
{
if(strlen(c)>1) //如果是负号,则将负号和数一起入第二个队列
Enter(atof(c));
else //否则,说明是减号,入第一队列
if(count==MaxQSize)
{
printf("Quere overflow!");
exit(1);
}
count++;
qlist[rear]=*c;
rear=(rear+1)%MaxQSize;
break;}
case '=':
pop(); //显示结果
break;
case 'c':
ClearStack();
break;
case 'q':
ClearStack();
exit(1);
default:
Enter(atof(c));
break;
}
}
return 0;
}
void Enter(float num) //将数据入第二个队列
{
if(count1==MaxQSize)
{
printf("Queue overflow!\n");
exit(1);
}
count1++;
qlist1[rear1]=num;
rear1=(rear1+1)%MaxQSize;
}
void ClearStack() //将三个队列清空
{
count=0;
count1=0;
count2=0;
front=0;
rear=0;
front1=0;
rear1=0;
front2=0;
rear2=0;
}
void pop() //显示结果
{
float QFront(float num1,float num2,char *temp);
float num1,num2;
float sum;
char temp;
temp=qlist[front]; //将第一个队列中的头结点读出来
while(count1!=0) //判断第二个队列是否有数
{
temp=qlist[front]; //将队列中头结点读出来
sum=QFront(num1,num2,&temp);
count--;
front=(front+1)%MaxQSize;//将第一个队列头指针加1
}
if(count!=0 && temp=='s')
sum=sqrt(qlist2[front2]);
if(count!=0 && temp=='n')
sum=sin(qlist2[front2]);
if(count!=0 && temp=='o')
sum=cos(qlist2[front2]);
printf("%f",sum);
}
float QFront(float num1,float num2,char *temp)
{
float number,numb1;
float QFront1();
void QInsert(float);
num1=QFront1(); //先读出一个数
switch(*temp)
{
case '+':
if(count2==0)
{
num2=QFront1();//读出第二个数
number=num1+num2;
QInsert(number);//将结果存入第三个队列
}
else
{
number=num1+qlist2[front2];
front2=(front2+1)%MaxQSize;
QInsert(number);
}
break;
case '-':
if(count2==0)
{
num2=QFront1();
number=num1-num2;
printf("number=%f\n",number);
QInsert(number);
}
else
{
number=qlist2[front2]-num1;
printf("number=%f\n",number);
front2=(front2+1)%MaxQSize;
QInsert(number);
}
break;
case '*':
if(count2==0) //如果第三个队列中没有数据,则从第二个队列中读出一个数据
{
num2=QFront1();
number=num1*num2;
QInsert(number);
}
else //否则,从第三个队列中读出数据
{
number=qlist2[front2]*num1;
front2=(front2+1)%MaxQSize;
QInsert(number);
}
break;
case '/':
if(count2==0)
{
num2=QFront1();
if(num2==0)
{
printf("divied by 0");
ClearStack();
exit(1);
}
else
{
number=num1/num2;
QInsert(number);
}
}
else
{
if(num1==0)
{
printf("divide by 0");
ClearStack();
exit(1);
}
else
{
number=qlist2[front2]/num1;
front2=(front2+1)%MaxQSize;
QInsert(number);
}
}
break;
case 's':
if(count2==0)
{
number=sqrt(num1);
QInsert(number);
}
else
{
number=sqrt(qlist2[front2]);
printf("number=%d\n",number);
front2=(front2+1)%MaxQSize;
QInsert(number);
}
break;
case 'n':
if(count2==0)
{
number=sin(num1);
QInsert(number);
}
else
{
number=sin(qlist2[front2]);
front2=(front2+1)%MaxQSize;
QInsert(number);
}
break;
case 'o':
if(count2==0)
{
number=cos(num1);
printf("number=%d\n",number);
QInsert(number);
}
else
{
number=cos(qlist2[front2]);
printf("number=%d\n",number);
front2=(front2+1)%MaxQSize;
QInsert(number);
}
break;
}
return number;
}
float QFront1() //从第一个数据读数据
{
float temp;
if(count1==0)
{
printf("Deleting from an empty queue!\n");
exit(1);
}
temp=qlist1[front1];
count1--;
front1=(front1+1)%MaxQSize;
return temp;
}
void QInsert(float number) //将结果存入第三个队列
{
if(count2==MaxQSize)
{
printf("Queue overflow!\n");
exit(1);
}
count2++;
qlist2[rear2]=number;
rear2=(rear2+1)%MaxQSize;
}
其实这个程序用链表实现更好,但是由于时间关系,所以用了数组。当然,这个程序还不是很完善,还有很多地方需要改进,比如可以用图形界面来进行操作、可以将三个队列放入一个结构体中等。
B. 用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. c语言简易计算器
#include"stdio.h"
intmain()
{
chara;
floatb,c,r;
scanf("%f%c%f",&b,&a,&c);
switch(a)
{
case'+':r=b+c;break;
case'-':r=b-c;break;
case'*':r=b*c;break;
case'/':r=b/c;break;
default:printf("error");
}
printf("%f%c%f=%f",b,a,c,r);
return0;
}
输入和输出char型,都要用%c
另外,在输入算式的时候,数和运算符之间不能有空格
输入:3+4
输出:3.000000+4.000000=7.000000
你打出来的结果后面多一点,是浮点数的精度问题。具体你可以看一下浮点数在内存里的表达方式。
D. 急求一个c语言简单计算器界面代码
vc6,你搜一下EasyX,几百k,装上就好。不过对graphics.h改动比较多,增加了很多功能,所以tc的绘图代码拷贝过去后得稍微调整一下。
E. C语言程序设计,做一个简单计算器
#include<stdio.h>
#include<math.h>
int main()
{
int i;
double num;
int i1, i2;
printf("\t计算器计算\n");
printf("加按1, 减按2, 乘按3, 除按4,平方按5, 立方按6,开方按7\n");
do
{
printf("输入:");
scanf("%d", &i);
}while(!(i > 0&&i < 8));
switch(i)
{
case 1:
{
printf("输入2个数字, 用空格隔开: ");
scanf("%d %d", &i1, &i2);
num = i1+i2;
break;
}
case 2:
{
printf("输入2个数字, 用空格隔开: ");
scanf("%d %d", &i1, &i2);
num = i1-i2;
break;
}
case 3:
{
printf("输入2个数字, 用空格隔开: ");
scanf("%d %d", &i1, &i2);
num = i1*i2;
break;
}
case 4:
{
printf("输入2个数字, 用空格隔开: ");
scanf("%d %d", &i1, &i2);
if(i2 == 0)
{
printf("除数不能为零!");
return 0;
}
num = i1/i2;
break;
}
case 5:
{
printf("输入1个数字: ");
scanf("%d", &i1);
num = i1*i1;
break;
}
case 6:
{
printf("输入1个数字: ");
scanf("%d", &i1);
num = i1*i1*i1;
break;
}
case 7:
{
printf("输入1个数字: ");
scanf("%d", &i1);
if(i1 < 0)
{
printf("开方不能小于零!");
return 0;
}
num = sqrt(i1);
break;
}
default:
{
printf("意外情况!");
break;
}
}
printf("结果为%lf\n", num);
return 0;
}
F. 编写函数实现简易计算器的功能(C语言)
#include <stdio.h>
void main()
{
float a,b;
char d;
do
{
printf("Please enter the two Numbers, separated by Spaces:\n");
scanf("%f %f",&a,&b);
printf("Please select operation way: (-,*,/,^,s,!)\n");
scanf("%s",&d);
switch(d)
{
case'+':
printf("a+b=%f\n",a+b);
break;
case'-':
printf("a-b=%f\n",a-b);
break;
case'*':
printf("a*b=%f\n",a*b);
break;
case'/':
printf("a/b=%f\n",a/b);
break;
default:
printf("input error\n");
}
printf("Do you want to continue(Y/N or y/n)");
fflush(stdin);
}
while(toupper(getchar())=='Y');
}
可以运行,不知道满不满足你的要求,你自己可以试试
G. 用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
}
H. C语言程序设计简易计算器
1、首先,打开Vs 2010,如图。
2、找到左上角的新建并点击,给文件为简单计算器,单击确定。
3、点击下一步,注意勾选空项目,点击下一步,点击完成。
4、点击左侧的源文件,右击选择“添加—>项目”,选择C++文件,命名为简单计算器,因为是C程序,注意后缀名要加上.c,点击确定完成文件新建工作。
5、输入以下代码,好了,一个简单的计算器便做好了
I. C语言编写简易计算器程序
C语言编写计算器
我们可以用printf和scanf函数输出结果和获取用户的输入。需要<stdio.h>头文件。scanf函数在读取数据的时候不需要再一行上输入每个数据,只要数据和数据之间留出空白就可以了。先声明两个变量number1和number2,operation变量用来存储运算符。用scanf函数获取这两个数字和运算符。分别用%lf %c %lf
J. C语言 要求编写一个简单计算器的程序
我给你写一个
简单的计算器
程序
,你可以看一下。如果需要更多的功能,那么还要更复杂一些。不是一句话可以说明白的。要用到很多
函数
的调用,和函数的方法。#include
"stdio.h"
void
main()
{
int
a,b,result;
char
m;
printf("请输入需要计算的数:\n");
scanf("%d
%d",&a,&b);
printf("请输入加、减、乘或除\n");
scanf("%c",&m);
if(m=="+")
//判断是否进行加法运算,以下同理
result=a+b;
else
if(m=="-")
result=a-b;
elsee
if(m=="*")
result=a*b;
else
if(m=="/")
result=a/b;
else
printf("您输入有误\n");
//如果输入的
符号
非加减乘或是除,报错
printf("计算结果为:%d\n",result);
//最后输出结果
}