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);
//最後輸出結果
}