❶ 怎樣用c語言實現計算器功能
設定一個數組變數a[10],初始化為0;設定一個字元串變數c[20],初始化為x;設定一個循環控制變數i,j,初始化為0;定義一個結果變數sum,初始化0
開始循環,讀取a[i],讀取c[i] ;判斷c[i]是否是『=』,不是則繼續讀取,是則循環結束
輸出a[0],輸出c[0],j++,sum=a[0];計算循環開始,case語句,如果c[j]為『+』,則sum+=a[j];+-*\等等符號,括弧的話要另設變數。
以此類推。最後當c[j]是『=』時,循環結束,輸出sum
❷ c語言編寫計算器程序
C語言編寫計算器
我們可以用printf和scanf函數輸出結果和獲取用戶的輸入。需要<stdio.h>頭文件。scanf函數在讀取數據的時候不需要再一行上輸入每個數據,只要數據和數據之間留出空白就可以了。先聲明兩個變數number1和number2,operation變數用來存儲運算符。用scanf函數獲取這兩個數字和運算符。分別用%lf %c %lf
❸ 用簡單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語言編寫一個簡單的可以進行加減乘除運算混合運算的計算器
用C語言編寫一個簡單的可以進行加減乘除運算混合運算的計算器的方法:
1、打開visual C++ 6.0-文件-新建-文件-C++ Source File;
❺ C語言實現簡單的計算器
給你寫了個簡單的,你看看吧~
只需要輸入1*3*4/7+5+6-3 這樣的算式就可以了,
最後用回車或非運算符結束輸入。
#include <stdio.h>
int main()
{
printf("請輸入算式:\n");
double a,b;//定義兩運算值
char sign;//定義符號接收值
scanf("%lf",&a);//先取得一個計算值
enum {A,B}f;//定義枚舉判斷循環,你可以去查查枚舉的用法
f = B;//給枚舉量賦值
while(f)//定義循環
{
sign = getchar();//接收符號。
if(sign == '+' ||sign == '-' ||sign == '*' ||sign == '/')
{//判斷符號為運算符,方可接收下一個運算值。
scanf("%lf",&b);
}
switch (sign) //判讀調用不同的運算函數
{
case '+':
a = a+b;break;
case '-':
a = a-b;break;
case '*':
a = a*b;break;
case '/':
a = a/b;break;
default:
f=A;//實際上A是0,所以就可以跳出循環。
}
}
printf("%lf\n",a);
return 0;
}
❻ 用C語言編寫一個計算器的程序 ,而且可以有多個運算符
# include <stdio.h>
int main(void)
{
double a, b;
int chose;
printf("歡迎使用我的計算器\n");
while (1)
{
printf("********************\n");
printf("1、兩數相加\n");
printf("2、兩數相減\n");
printf("3、兩數相乘\n");
printf("4、兩數相除\n");
printf("5、退出\n");
printf("********************\n");
scanf("%d", &chose);
/* if (chose<1 || chose>5)
{
printf("你的輸入有誤,請重新輸入!\n");
continue;
}*/
switch (chose)
{
case 1:
printf("請輸入第一個數字:\n");
scanf("%lf", &a);
printf("請輸入第二個數字:\n");
scanf("%lf", &b);
printf("%lf+%lf = %lf\n", a, b, a+b);
break;
case 2:
printf("請輸入第一個數字:\n");
scanf("%lf", &a);
printf("請輸入第二個數字:\n");
scanf("%lf", &b);
printf("%lf-%lf = %lf\n", a, b, a-b);
break;
case 3:
printf("請輸入第一個數字:\n");
scanf("%lf", &a);
printf("請輸入第二個數字:\n");
scanf("%lf", &b);
printf("%lf*%lf = %lf\n", a, b, a*b);
break;
case 4:
printf("請輸入第一個數字:\n");
scanf("%lf", &a);
printf("請輸入第二個數字:\n");
scanf("%lf", &b);
printf("%lf/%lf = %lf\n", a, b, a/b);
break;
case 5:
printf("再見!\n");
return ;
default:
printf("你的輸入有誤,請重新輸入!\n");
continue;
}
}
}
❼ 用C語言編寫一個計算器程序
#include<stdio.h>
#include<windows.h>
#include<math.h>
#define p 3.1415926
#define r p/180 //r=p/180,p=3.14....,p/180是求的1弧度,下面sin(裡面要求的是弧度),sin(30弧度)=0.5。 void main()
{
float i,j,k;
int l,m,n,a[10];
char cmd;
LOOP:
system("cls");
printf("***********************\n");
printf("*******小寒計算器******\n");
printf("***********************\n");
printf("\n\n本計算器提供+、-、*、/四種運算。\n");
printf("p-代表圓周率pai。\n");
printf("a-代表十進制轉換為二進制。\n");
printf("b-代表十進制轉換為八進制。\n");
printf("c-代表十進制轉換為十六進制。\n");
printf("d-代表該數值開方。\n");
printf("e-代表該數值開立方。\n");
printf("f-代表求幾次方。\n");
printf("S-代表sin。\n");
printf("C-代表cos。\n");
printf("T-代表tan。\n");
printf("\n\n請輸入要計算的數字和運算符號,輸入「#」時,結束;輸入「!」時復位。\n");
scanf("%f",&k);
while((cmd=getchar())!='#')
{
if(i!=0)
switch(cmd)
{
case '+': scanf("%f",&i);
k=k+i;
printf("=%5.2f",k);
break; case '-': scanf("%f",&i);
k=k-i;
printf("=%5.2f",k);
break; case '*': scanf("%f",&i);
k=k*i;
printf("=%5.2f",k);
break; case '/': scanf("%f",&i);
k=k/i;
printf("=%5.2f",k);
break;
case 'p': k=k*p;
printf("%6.4f",k);
break; case 'f': printf("請輸入要求該數字的幾次方:");
scanf("%d",&n);
i=k;
for(m=0;m<n-1;m++)
k=k*i;
printf("%5.2f",k);
break; case 'a': printf("轉換成二進制\n");
m=0;
while((int)k>0)
{
l=k;
k=k/2;
l=l%2;
a[m]=l;
m++;
}
for(n=m-1;n>=0;n--)
printf("%d",a[n]);
break; case 'b': printf("轉換成八進制\n");
m=0;
while((int)k>0)
{
l=k;
k=k/8;
l=l%8;
a[m]=l;
m++;
}
for(n=m-1;n>=0;n--)
printf("%d",a[n]);
break;
case 'c': printf("轉換成十六進制\n");
m=0;
while((int)k>0)
{
l=k;
k=k/16;
l=l%16;
a[m]=l;
m++;
}
for(n=m-1;n>=0;n--)
{
if(a[n]==10)
{ printf("A");continue;}
else if(a[n]==11)
{ printf("B");continue;}
else if(a[n]==12)
{ printf("C");continue;}
else if(a[n]==13)
{ printf("D");continue;}
else if(a[n]==14)
{ printf("E");continue;}
else if(a[n]==15)
{ printf("F");continue;} printf("%d",a[n]);
}
break;
case 'e': printf("該數值開立方得\n");
i=pow(k,1.0/3);
printf("%5.2f",i );
break;
case 'd': printf("該數值開方得\n");
i=k/2;
j=sqrt(k);
printf("%5.2f",j);
break; case 'S': k=k*r;
i=sin(k);
printf("%5.2f",i);
break;
case 'C': k=k*r;
i=cos(k);
printf("%5.2f",i);
break; case 'T': k=k*r;
i=tan(k);
printf("%5.2f",i);
break; case '!': goto LOOP;
}
}
}
❽ 怎樣用C語言程序實現計算器功能,要求液晶顯示
是
計算器
那種'8;字型液晶嗎?
那種要參考LED顯示的線路,哪個線路對應哪個位,然後把這些對應的值先寫出來,再用C語言
邏輯
加以控制(運算).
說個
思路
:
比如數字"8"對應的位為:1111
1110(因為要顯示數字8的話,7個LED管都要亮,而最後一位為
小數點
.這里只是打個比方,要去查LED對應的位.我記得小數點不是最後一位)
那麼unsighed
char
number8=0xfe;(1111
1110)
以此類推,
運算的時候,輸入數字,
符號
,數字,等於.
偽代碼
如下:
輸入數字;
int
num1=0;//第一個數
int
num2=0;//第二個數
char
oper
=
'\0';
if(input
>='0'
&&input<='9')//這個應該是ASCII碼,應該是
按鍵
的掃描碼.
單片機
裡面不一樣.我這只是寫個思路.
{//如果輸入的是0-9的數字
num1=num1*10+input;//把之前的數乘個10,再把輸入的數加到個位.計算器都是這么用的.
count1++;
}
else
{
switch(input)
{
case
'+'://按了
加號
,那麼第一個數輸入完畢了.
oper
=
'+';//這里我也只是寫個思路,不用這樣等.
結束輸入第一個數的循環;
break;
}
}
輸入第二個數的邏輯差不多,就是最後輸入完畢時候是輸入符號後,要把值算出來.
switch(oper)
{
case
'+'://加法
result
=
num1+num2;
break;
case
'-'//減法
result
=
num1
-
num2;
break;
///其餘類似
}
最後輸出階段:
輸出那個result;
從最高位開始輸出:
int
t=0;bool
first=true;
for(int
l=max;l>0;l--)//這里的max是顯示部分能顯示多少位
{
t
=
result/pow(10,l);
if(t!=0)
first
=false;//第一個不是0了
if(!first)
{
output(t,l);//把t輸出到LED的l位上
result
-=
t*pow(10,l);//輸出一位少相應的值.
}
}//這個
演算法
沒有考慮小數.小數自己研究研究吧.
output(int
t,int
l)//大概這樣的
{
switch(t)
{
case
'1':....
//把對應
電路
的位設置為高電位,比如8
case
'8':
電路控制端=number8;//就是前面那個1111
1110,也就是0xfe.
其餘數字的
組合方法
查LED
手冊
.用的哪種LED就查哪種LED的手冊.有的不一樣
}
}
❾ 用C語言編程實現一個簡單的四則運算計算器
#include <stdio.h>
//函數,讀數操作數
int getNextNum()
{
int ret;
scanf("%d",&ret);
return ret;
}
//函數,讀運算符
char getOpt()
{
return getchar();
}
//函數,計算
int caculate(int op1 , int op2 ,char opt)
{
if(opt=='+')return op1+op2;
if(opt=='-')return op1-op2;
if(opt=='*')return op1*op2;
if(opt=='/')return op1/op2;
return 0;
}
int main()
{
int op1,op2;
char opt;
//計算結果放在第一個操作數
op1 = getNextNum();
while(1)
{
opt = getOpt();
if ( opt == '=' ) break;
op2 = getNextNum();
op1 = caculate(op1,op2,opt);
}
printf("%d\n",op1);
}
return 0;
}
❿ c語言編寫「多功能計算器」的代碼
#include<stdio.h>
#include<windows.h>
#include<math.h>
double
EPS=10E-6;
double
sum(double
a,double
b)
{
return
a+b;
}
double
sub(double
a,double
b)
{
return
a-b;
}
double
mul(double
a,double
b)
{
return
a*b;
}
double
divv(double
a,double
b)
{
return
a/b;
}
int
rem(int
a
,
int
b)
{
return
a%b;
}
int
addnumber(int
c,int
d)
{
int
sum=0;
for(int
i=c;i<=d;i++)
{
sum+=i;
}
return
sum;
}
int
factor(int
n)
{
int
f=1;
for(int
i=1;i<=n;i++)
{
f*=i;
}
return
f;
}
void
displaymenu()
{
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
\n");
printf("*############高級計算器############*
\n");
printf("************************************
\n");
printf("*
①加法運算
*
\n");
printf("*
②減法運算
*
\n");
printf("*
③乘法運算
*
\n");
printf("*
④除法運算
*
\n");
printf("*
⑤取余運算
*
\n");
printf("*
⑥累加運算
*
\n");
printf("*
⑦階乘運算
*
\n");
printf("*
⊙結束運算
*
\n");
printf("************************************
\n");
printf("************************************
\n");
}
void
main()
{
int
c,d;
/*用於做四則運算的兩個數值的說明*/
double
a,b;
/*用來做累加函數的兩個參數值的說明*/
int
intresult;
double
result;
/*用於保存表單運算中函數的返回值*/
int
choice;
displaymenu();/*保存用戶選擇項目菜單項*/
while(1)
{
printf("請選擇你所進行運算項目的符號:");
scanf("%d",&choice);
switch(choice)
{
case
1:
/*加法計算*/
printf("請輸入兩個數字:");
scanf("%lf%lf",&a,&b);
result=sum(a,b);
printf("%lf+%lf的計算結果是:%lf\n",a,b,result);
break;
case
2:
/*減法計算*/
printf("請輸入兩個數字:");
scanf("%lf%lf",&a,&b);
result=sub(a,b);
printf("%lf-%lf的計算結果是:%lf\n",a,b,result);
break;
case
3:
/*乘法計算*/
printf("請輸入兩個數字:");
scanf("%lf%lf",&a,&b);
result=mul(a,b);
printf("%lf*%lf的計算結果是:%lf\n",a,b,result);
break;
case
4:
/*除法計算*/
{
scanf("%lf%lf",&a,&b);
if(b-0.0<EPS)
printf("數字錯誤\n");
else
{
printf("請輸入兩個數字:");
result=divv(a,b);
printf("%lf/%lf的計算結果是:%lf\n",a,b,result);
}
break;
}
case
5:
/*取余計算*/
printf("請輸入兩個數字:");
scanf("%d%d",&c,&d);
result=rem(c,d);
printf("%d
%
%d的計算結果是:%d\n",c,d,result);
break;
case
6:
/*累加計算*/
printf("請輸入兩個整數");
scanf("%d%d",&c,&d);
intresult=addnumber(c,d);
printf("%d-%d的累加計算結果是:%d\n",c,d,intresult);
break;
case
7:
//階乘計算
{
printf("請輸入一個大於0小於10的整數字");
scanf("%d",&c);
if(c<0||c>10)
{
printf("請輸入一個大於0小於10的整數字,數據錯誤。\n");
break;
}
intresult=factor(c);
printf("%d的階乘計算結果是:%d\n",c,intresult);
break;
}
case
0:
printf("謝謝使用。歡迎下次再用。\n");
return
;
default:
printf("選擇錯誤,程序結束\n");
break;
}
}
}