① 如何在計算器上編程
可以在手機上安裝可編程的計算器。例如使用易歷知食軟體內部的可編程計算器,就可以在計算器上編程,下面示例是編寫一個計算圓面積的函數c,並在計算器中用函數c來計算半徑為6的圓的面積,如下圖所示:
② 簡單計算器編程
嘿嘿,C++實現姿沒個Console環境中的計算器很簡單,鑒於你沒給懸賞分,我也懶得打字了,從別處粘貼過來的代碼,非常簡單,你可以參考一下。
// Ex6_09Extended.cpp
// A program to implement a calculator accepting parentheses
#include <iostream> // For stream input/output
#include <cstdlib> // For the exit() function
#include <cctype> // For the isdigit() function
#include <跡團納cstring> // For the strcpy() function
using std::cin;
using std::cout;
using std::endl;
void eatspaces(char* str); // Function to eliminate blanks
double expr(char* str); // Function evaluating an expression
double term(char* str, int& index); // Function analyzing a term
double number(char* str, int& index); // Function to recognize a number
char* extract(char* str, int& index); // Function to extract a substring
const int MAX = 80; //或豎 Maximum expression length,
// including '\0'
int main()
{
char buffer[MAX] = {0}; // Input area for expression to be evaluated
cout << endl
<< "Welcome to your friendly calculator."
<< endl
<< "Enter an expression, or an empty line to quit."
<< endl;
for(;;)
{
cin.getline(buffer, sizeof buffer); // Read an input line
eatspaces(buffer); // Remove blanks from input
if(!buffer[0]) // Empty line ends calculator
return 0;
cout << "\t= " << expr(buffer) // Output value of expression
<< endl << endl;
}
}
// Function to eliminate spaces from a string
void eatspaces(char* str)
{
int i = 0; // 'Copy to' index to string
int j = 0; // 'Copy from' index to string
while((*(str + i) = *(str + j++)) != '\0') // Loop while character
// copied is not \0
if(*(str + i) != ' ') // Increment i as long as
i++; // character is not a space
return;
}
// Function to evaluate an arithmetic expression
double expr(char* str)
{
double value = 0.0; // Store result here
int index = 0; // Keeps track of current character position
value = term(str, index); // Get first term
for(;;) // Indefinite loop, all exits inside
{
switch(*(str + index++)) // Choose action based on current character
{
case '\0': // We're at the end of the string
return value; // so return what we have got
case '+': // + found so add in the
value += term(str, index); // next term
break;
case '-': // - found so subtract
value -= term(str, index); // the next term
break;
default: // If we reach here the string
cout << endl // is junk
<< "Arrrgh!*#!! There's an error"
<< endl;
exit(1);
}
}
}
// Function to get the value of a term
double term(char* str, int& index)
{
double value = 0.0; // Somewhere to accumulate
// the result
value = number(str, index); // Get the first number in the term
// Loop as long as we have a good operator
while((*(str + index) == '*') || (*(str + index) == '/'))
{
if(*(str + index) == '*') // If it's multiply,
value *= number(str, ++index); // multiply by next number
if(*(str + index) == '/') // If it's divide,
value /= number(str, ++index); // divide by next number
}
return value; // We've finished, so return what
// we've got
}
// Function to recognize a number in a string
double number(char* str, int& index)
{
double value = 0.0; // Store the resulting value
if(*(str + index) == '(') // Start of parentheses
{
char* psubstr = 0; // Pointer for substring
psubstr = extract(str, ++index); // Extract substring in brackets
value = expr(psubstr); // Get the value of the substring
delete[]psubstr; // Clean up the free store
return value; // Return substring value
}
while(isdigit(*(str + index))) // Loop accumulating leading digits
value = 10*value + (*(str + index++) - '0');
// Not a digit when we get to here
if(*(str + index) != '.') // so check for decimal point
return value; // and if not, return value
double factor = 1.0; // Factor for decimal places
while(isdigit(*(str + (++index)))) // Loop as long as we have digits
{
factor *= 0.1; // Decrease factor by factor of 10
value = value + (*(str + index) - '0')*factor; // Add decimal place
}
return value; // On loop exit we are done
}
// Function to extract a substring between parentheses
// (requires cstring)
char* extract(char* str, int& index)
{
char buffer[MAX]; // Temporary space for substring
char* pstr = 0; // Pointer to new string for return
int numL = 0; // Count of left parentheses found
int bufindex = index; // Save starting value for index
do
{
buffer[index - bufindex] = *(str + index);
switch(buffer[index - bufindex])
{
case ')':
if(numL == 0)
{
size_t size = index - bufindex;
buffer[index - bufindex] = '\0'; // Replace ')' with '\0'
++index;
pstr = new char[index - bufindex];
if(!pstr)
{
cout << "Memory allocation failed,"
<< " program terminated.";
exit(1);
}
strcpy_s(pstr, index-bufindex, buffer); // Copy substring to new memory
return pstr; // Return substring in new memory
}
else
numL--; // Rece count of '(' to be matched
break;
case '(':
numL++; // Increase count of '(' to be
// matched
break;
}
} while(*(str + index++) != '\0'); // Loop - don't overrun end of string
cout << "Ran off the end of the expression, must be bad input."
<< endl;
exit(1);
return pstr;
}
上面的代碼來自《Lvor Horton's Begining Visual C++ 2008》一書,非常適合C++初學者。用上面代碼實現的計算器可以進行諸如(1+3)*6/2之類的加減乘除和帶括弧的表達式運算。
此外,在Linux系統的Shell環境中,有個bc計算器程序,功能更強一些,有興趣的話可以找來源代碼看看。
③ C語言編寫簡易計算器程序
C語言編寫計算器
我們可以用printf和scanf函數輸出結果和獲取用戶的輸入。需要<stdio.h>頭文件。scanf函數在讀取數據的時候不需要再一行上輸入每個數據,只要數據和數據之間留出空白就可以了。先聲明兩個變數number1和number2,operation變數用來存儲運算符。用scanf函數獲取這兩個數字和運算符。分別用%lf %c %lf
④ 卡西歐計算器怎麼編程
卡西歐計算器有很多種的,,每一種卡西歐計算器編程語言都大不一樣,就比如卡西歐4800和卡西歐5800計算器,編程語句和關鍵字很多不一樣的了,如果你問的僅僅是進入計算器編程界面的話,對於卡西歐5800計算器那就是:「MODESRTUP」——5號鍵,PROG——1號鍵,NEW——輸入程序名稱——選擇程序模式(一般情況下都是在COMP模式下)——進入代碼輸入界面,輸入程序代碼再運行就行了。
一、使用簡單,最大的一個優點就是只要具有初中水平會運用數學公式對函數有一般的了解的人,能基本理解casio4x00的內裝函數即可進行簡單的編程。非常適合測量初學者和數學程序愛好者學習,也適合專業的測量人員的使用和能力提高。不像其它的專業一定要具有較高的專業技術水平才能進行電腦編程。
二、成本低廉,價格在400元左右。
三、攜帶方便,體積很小可隨時放在口袋裡隨拿隨用。casio系列較好的編程型號有casio4500(以下簡稱4500)、casio4800(以下簡稱4800),(好象近來還推出了一款casio4850)前者較內存小,只有1103個位元組,能應付一些較為簡單的公式計算和科學計算,但由於內存有限,對一些較復雜或子程序過多的程序就力不從心了,不能出色的完成測量任務。4800就比4500有較大的改進,4800內存達到的4500個位元組,而且顯示屏是4500的幾倍大,能更准確的顯示數據,內裝函數字元一目瞭然。且具有簡單的人機對沖灶好話功能,出現了菜單子菜單。4800還在4500增加了啊佛加德羅常數、萬有引力長常數、詳見《操作說明書》。4800有很多很實用的功能如他有一個公式散鉛解答功能,其原理是用牛頓法解方程。
舉個例子:有一方程式:a=2b-c求當a=2、c=5時的b值。將該方程式存入公式存貯器中,:先按按解答鍵「SOLVE」a輸入2、c輸入5,再按解答鍵「SOLVE」計算器就會顯示:b=3.5。此項功能被稱為自動解答功能。同時它也是非常實用的,在實際工作中通常要有一個經常使用的小公式,可藉助它來完成。4800使用的程序語言可以算做簡單的BASIC語言,有的命令如GOTO(轉移到)、PAUSE(暫停)就與BASIC語言的一模一樣。現在4800的程序語言來說說。其主要命令有:
1、=>??條件轉移成立符號,其用法相當於BASIC中的IF??THEN(假設語句相當於假如??然後,IF相當於條件??THEN相當於結果)語句
2、≠>??條件轉移不成立符號,其用法相當於BASIC中的IF??ELSE語句通常二者連用,相當於BASIC中的IF??THEN??ELSE語句(它的英語形式一般為ifa>bthenc>delseifb>athe??)
3、_??條件轉移結束符號,與=>和≠>配合使用,放在條件語句最後面。
4、LbI??標記命令。用於將一段語句作轉換標記。後可接字母、數字、符號,但不能超過兩個位元組,如不能用≥10的數字作行標,否則會出現出錯信息。
5、Goto??(條件)轉移命令。前面可加條件語句,與BASIC中的GOTO作用相同。通常與LbI一起用,如果所轉移的行號無效,則會顯示:GOERROR(詳見說明書)出錯信息
6、Dsz??減量循環命令。可減少未知數的數量。
7、Isz??增量循環命令。
8、Pause??暫停命令。後可接0~9之間的整數n,可使某一數據顯示n/2秒鍾,然後繼續運行下面的程序。它被認為是一個語句。
9、Fixm??變數鎖定命令。該命令能使其所有變數值(A~Z)均當成定數處理。當程序運行時,將不需要辯頌輸入變數(「{}」內的變數除外),而是將存貯器中原有的數值來完成計算。
10、{}??變數輸入命令。只程序在循環使用時經常發生改變的數字,如里程、和寬度。它的輸入方式可以使很多種如{AB}{A,B}{AB}都可以。注意「{」和「}」必需成對輸入。否則會出現SynERROR(詳見說明書)出錯信息。
11、=、≠、>、<、≤、≥??條件運算關系運算元,常與Goto命令構成條件轉換語句。
12、Prog??在正常情況是下打開程序的快捷鍵。在編程過程中是運行子程序命令,後接子程序名(一定要加引號,且要注意空格,否則會出現SynERROR(詳見說明書)的出錯信息。
13、↓??換行,只保留計算過程不顯示計算結果。當不想對其換行時也可用:代替。
14、_??數據顯示命令。該命令輸入後會自動換行。保留計算過程並顯示計算結果。有一條總原則即:①學會運用程序的語言,盡可能使程序變得簡明扼要;我們編寫程序應該盡可能地使程序變得簡明扼要,能省略的要一定省略。煩瑣的語句過多的位元組只能使計算器的運算速度變慢沒有任何好處,而且相當站用內存。學會節省位元組和使用符號是相當重要的。尤其要靈活運用計算器語句因為它會使你更多的節省位元組達到預期效果。比如下程序就靈活運用了Dsz(減量循環命令)。比如使其能輸入10個數值,並計算10個數值的平均值。一般程序求10個數字的平均值需要有11個數字的提示符號。但學會靈活運用了Dsz(減量循環命令)那麼只要有三個就可以了,這樣就大大節省了位元組的佔用。常式序如下:
A=10
C=0
Lbi1
{B}
C=B+C
DszA
Goto1
C÷10
但要注意的是:如果你是初學者或你對程序的編程不熟練,首先一定要先按照你的思路把程序步驟一步一步的列好在確定它能正確的計算後在想辦法對其進行精簡修改,否則只會使程序出現過多的錯誤;②盡可能使程序所包含的子程序減少;子程序過多就會造成程序結構鬆散,有的計算器主程序需要三個或四子程序,過多的子程序只會引起程序之間紊亂、混淆。子程序過多對在使用時查找也比較麻煩。而且子程序過多如果其中某個環節出現錯誤很難發現其錯誤所在,在編寫程序時要盡量的少編寫子程序,即使要編寫子程序時也要注意尤其在容易出錯的地方要多加註意。有弊就有利如果你對子程序了解得多了那麼可以幾個主程序合用一個之程序也到到了要求的減少程序的位元組使程序更簡化。常式序如下:
CXCD
Lbi1Lbi1
Prog」V」Prog」V」
B=L-(K-S)_B=L+(K-S)_
Goto1Goto1
V
Y=√A2B2+B2X2÷A
③盡量少用或不使用擴充變數存貯器,如A[1]、A[2]等:使用擴充存貯器是一個利少弊多的做法。每擴充一個存貯器就要減少10個位元組的容量,而每個擴充存貯器至少要佔四個位元組,比一個A~Z變數凈增三個。有時你會覺得變數存貯器不夠用。其實不盡然,一般程序變數數很少會超過26個,只是你不懂得去使用。一般來說,兩個相對獨立的程序步驟之間根本不需要考慮變數重復問題。針對某一個程序,只要不是固定變數({}內的變數),也就是那些通過計算出來的用於下一步計算的數值。我們就可以通過重復賦值來得到某些計算量。反正在下一輪循環中該量是變化的。明白了各種命令的含義和注意事項就可以編程了。舉例有公式如下:
CX程序名稱
Lbl0↓起始標記命令語句
QMNFJ↓數據輸入語句(指公式循環運算時的不變數)
{KDE}↓數據輸入語句(指公式循環運算時變數)
S=K—Q:G=F+J↓公式運算命令
X=M+ScosF↓公式運算命令
Y=M+SsinF↓公式運算命令
Prog」j」↓運行子程序命令
Goto0↓循環運算語句
J子程序名稱
H=X+DcosG_公式運算、數據顯示語
I=Y+DsinG_公式運算、數據顯示語
T=X—EcosG_公式運算、數據顯示語
U=Y—EsinG_公式運算、數據顯示語
最後計算器狀態設定語句是大家最容易忽視的。如果將單位進行預設那麼計算器就會默認其使用單位在進行下一單位換算時要一定要進行單位轉換,否者會使計算結果錯誤。在顯示屏幕的左下角可以清楚地發現小提示符號:如D代表度為現在的預設單位、R代表弧度為現在的預設單位、G代表梯度為現在的預設單位。
⑤ c語言設計一個簡單的計算器程序
#include<stdio.h>//計算器
voidmenu()//自定義的菜單界面
{
printf("--------------------\n");
printf("請輸入你的選擇\n");
printf("1.+\n");
printf("2.-\n");
printf("3.*\n");
printf("4./\n");
printf("--------------------\n");
}
intmain()
{
inti=0;
intj=0;
intnum=0;//計算結果存放在nun
intselect=0;//選擇的選項存放在select
do//do-while先執行再判斷循環條件,即可實現重復計算功能
{
menu();//列印出菜單界面
scanf("%d",&select);//輸入你的選項
printf("請輸入計算值:");
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\n",i,j,num=i*j);//實現乘法功能
break;
case4:
printf("%d-%d=%d\n",i,j,num=i/j);//實現除法功能
break;
default:
printf("輸入有誤重新選擇");
break;
}
}while(select);
return0;
}
運行結果:
return表示把程序流程從被調函數轉向主調函數並把表達式的值帶回主調函數,實現函數值的返回,返回時可附帶一個返回值,由return後面的參數指定。
return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。
⑥ 怎樣編程簡單的計算器程序
這種運算比較麻煩,不過4種運算符號優先順序相同應該簡單寫,我這里有個演算法,能進行簡單的四則運算,delphi的,供參考
Function Math_Evaluate(S0:string):Extended;
Function Evaluate(S0:String):Extended;Forward;
Procere CleanUp(var s0:string);
Var巧兄
I:integer;
Begin
S0:=LowerCase(s0);
I:=Pos(' ',s0);
While I>0 Do
Begin
Delete(S0,I,1);
I:=Pos(' ',S0);
End;
End;
Function GetFirstOpp(Tot:Integer;S0:String):Integer;
Const弊薯
Sopps:String=('+-*/^');
Var
I:Integer;
Begin
If Tot=0 Then Tot:=Length(S0);
For I:=1 To 5 Do
Begin
Result:=Pos(Sopps[i],S0);
If ((I<3) And (Result>0)) Then
If ((Result=1) Or (Pos(S0[Result-1],Sopps)>0)) Then
Result:=0;
If Result>0 Then
If Result<Tot Then
Exit;
End;
If Result>Tot Then
Result:=0;
End;
Function SpecialF(P1:Integer;S0:String):Extended;
Var
Operstr:String;
Arg:Extended;
Begin
Result:=0;
Operstr:=Copy(S0,1,P1-1);
If S0[Length(S0)]<>')' Then
Exit;
Operstr:=LowerCase(Operstr);孝卜襲
Arg:=Evaluate(Copy(S0,P1+1,Length(S0)-P1-1));
if Operstr ='sin' Then
Result:=Sin(Arg)
Else if Operstr ='cos' Then
Result:=Cos(Arg)
Else if Operstr ='tan' Then
Result:=Sin(Arg)/Cos(Arg)
Else if Operstr ='arctan' Then
Result:=Arctan(Arg)
Else if Operstr ='log' Then
Result:=Ln(Arg)/Ln(10)
Else if Operstr ='ln' Then
Result:=Ln(Arg)
Else if Operstr ='exp' Then
Result:=Exp(Arg)
Else if Operstr ='sqrt' Then
Result:=Sqrt(Arg)
{enter additional functions here}
Else Exit;
End;
Function GetValue(S0:String):Extended;
Begin
Result:=0;
If Length(S0)<1 Then Exit;
If Length(S0)=1 Then
Result:=StrToFloat(S0)
Else
Case s0[1] Of
'x':Result:=1;
'y':Result:=1;
'z':Result:=1;
Else Result:=StrToFloat(S0);
End;
End;
Procere MatchBracket(Var I:Integer;S0:String);
Var
J,Len:Integer;
Begin
J:=1;
Len:=Length(S0);
Repeat Inc(I);
If I>Len Then Exit;
If S0[I]='(' Then Inc(J);
If S0[I]=')' Then Dec(J);
If J<0 Then Exit;
Until J=0;
End;
Function Calculate(P1:Integer;S0:String):Extended;
Var
V1,V2:Extended;
Begin
Result:=0;
V1:=Evaluate(Copy(S0,1,P1-1));
V2:=Evaluate(Copy(S0,P1+1,Length(s0)-P1));
Case S0[P1] Of
'+': Result:=V1+V2;
'-': Result:=V1-V2;
'/': Result:=V1/V2;
'*': Result:=V1*V2;
'^': Result:=Exp(V2*Ln(V1));
Else Exit;
End;
End;
Function Evaluate(S0:string):Extended;
Var
P1,P2,Q1:Integer;
Begin
P1:=Pos('(',S0);
P2:=P1;
If P2>0 Then
MatchBracket(P2,S0);
If P1=1 Then
Begin
If P2=Length(S0) Then
Begin
Delete(S0,P2,1);
Delete(S0,1,1);
Result:=Evaluate(S0);
End Else
Result:=Calculate(P2+1,S0);
Exit;
End;
Q1:=GetFirstOpp(P1,S0);
If (P1+Q1=0) Then
Begin
Result:=GetValue(S0);
Exit;
End;
If Q1<>0 Then
Result:=Calculate(Q1,S0)
Else If Length(S0)>P2 Then
Result:=Calculate(P2+1,S0)
Else
Result:=SpecialF(P1,S0);
End;
Begin
Try
CleanUp(S0);
Result:=Evaluate(S0);
Except
Result:=0;
End;
End;
⑦ 用C語言編程實現一個簡單的四則運算計算器
分類: 電腦讓耐/網路 >> 程序設計 >> 其他編程語言
問題描述:
編程:編程實現一個簡單的四則運算計算器:從鍵盤輸入一個四則運算表達式(沒有空格和括弧),遇等瞎滑數號"="說明輸入結束,輸出結果。
假設計算器只能進行加減乘除運算,運算數和結果都是整數,4種運算符的優先順序相同,按從左到右的順序計算(即:2+3*5先計算2+3,再計算5*5)。
示例:括弧內是說明
輸入
1+2*10-10/2=
輸出
10
解析:
#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>
int main()
{
double num1;
double num2;
double result;
char ch;
printf("Please enter express to caculate, 'q' to exit(eg. 1+3):");
while(scanf("%lf%c%lf",&num1,&ch,&num2) == 3)
{
switch(ch)
{
case '+':
{
result = num1 + num2;
break;
}
case '-':
{
result = num1 - num2;
break;
}
case '/':
{
if(num2 == 0)
printf("Error:div/0\n");
else
result = num1 / num2;
break;
}
case '*':
{
result = num1 * num2;
break;
}
}
printf("%g%c%g=%g\n",num1,ch,num2,result);
printf("Please enter express to caculate, 'q' to exit(eg. 1+3):");
}
return 0;
}
⑨ 怎麼用C語言設計一個簡單計算器
怎麼用C語言設計一個簡單計算器 #include<iostream>
#include<math.h>
using namespace std;
main ()
{
char k;
double s,g;
k='-';
cout<<"求絕對值請按A;求平方根請按B;加減乘除清分別按+-*/" <<endl;
cin>>g;
while (1)
{
cin>>k;
if (k=='=')
break;
if (k=='A')
{
g=fabs (g);
break;
}
if (k=='B')
{
g=sqrt (g);
break;
}
cin>>s;
if (k=='+')
g+=s;
if (k=='-')
g-=s;
if (k=='*')
g*=s;
if (k=='/')
{
if (s==0)
cout<<"wrong";
else
g/=s;
}
}
cout<<g;
}
#include<stdio.h> void add(int a,int b,int c) { c=a+b; printf("%d\t",c); printf("\n"); } void minus(int a,int b,int c) { c=a-b; printf("%d\t",c); printf("\n"); } void multiplication(int a,int b,int c) { c=a*b; printf("%d\t",c); printf("\n"); } void div(int a,int b,int c) { c=(float)a/(float)b; printf("%f\t",c); printf("\n"); } main() { int a,b,c; char p; puts("input A:\n"); scanf("%d",&a); puts("input B:\n"); scanf("%d",&b); puts("input operation:\n"); 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"); } 以上是設計的一個簡易計算器。可以進州拆仿行相應的加減乘除。 簡介:
C語言是一種計算機程式設計語言,它既具有高階語言的特點,又具有組合語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系冊纖統應用程式,也可以作為應用程式設計語言,編寫不依賴計算機硬體的應用程式。它的應用范圍廣泛,具備很強的資料處理能力,不僅僅是在軟體開發上,而且御明各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如微控制器以及嵌入式系統開發。
求用C語言設計一個簡單計算器
應該不難,就是按鈕的訊息傳遞處理函式等,
用C語言怎麼設計一個簡單計算器?
#include<stdio.h>
void add(int a,int b,int c)
{
c=a+b;
printf("%d\t",c);
printf("\n");
}
void minus(int a,int b,int c)
{
c=a-b;
printf("%d\t",c);
printf("\n");
}
void multiplication(int a,int b,int c)
{
c=a*b;
printf("%d\t",c);
printf("\n");
}
void div(int a,int b,int c)
{
c=(float)a/(float)b;
printf("%f\t",c);
printf("\n");
}
main()
{
int a,b,c;
char p;
puts("input A:\n");
scanf("%d",&a);
puts("input B:\n");
scanf("%d",&b);
puts("input operation:\n");
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");
}
怎麼用C語言程式設計一個簡單計算器?
#include<<a href=":./s?wd=stdio.h&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-TLwGUv3EPH6srjc4rH61" target="_blank" class="-highlight">stdio.h</a>>
void main() { float x,y,z; char c;
scanf("%f%c%f",&x,&c,&y);
switch ( c ) {
case '+': z=x+y; break;
case '-': z=x-y; break;
case '*': z=x*y; break;
case '/': z=( y==0 )?(0):(x/y); break;
default: z=0; break;
}
printf("%f%c%f=%f\n",x,c,y,z);
}
C語言是一門通用計算機程式語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
盡管C語言提供了許多低階處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程式可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。[1] 目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)釋出的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支援了漢字函式名和漢字識別符號,一定程度上實現了漢字程式設計。
用C語言編一個簡單計算器
已經為你實現了加減乘除了。 main.c 簡易計算器 Created by shengan on 15/6/29. Copyright (c) 2015年 shengan. All rights reserved.#include <stdio.h>double plus();double minus();double multi();double divide();int main(int argc, const char * argv[]) { insert code here... double a, b; char c; while(1 == 1) { printf("簡易計算器\n"); printf("輸入第一個數:\n"); scanf("%lf", &a); printf("輸入運運算元:\n"); scanf("%s", &c); printf("輸入第二個數:\n"); scanf("%lf", &b); switch (c) { case '+': printf("%lf %c %lf = %lf", a, c, b, plus(a, b)); break; case '-': printf("%lf %c %lf = %lf", a, c, b, minus(a, b)); break; case '*': printf("%lf %c %lf = %lf", a, c, b, minus(a, b)); break; case '/': printf("%lf %c %lf = %lf", a, c, b, minus(a, b)); break; default: printf("運運算元號輸入錯誤!\n"); break; } } return 0;}加法double plus(double a, double b){ return a + b;}double minus(double a, double b){ return a - b;}double multi(double a, double b){ return a * b;}double divide(double a, double b){ return a / b;}
設計一個簡單計算器
#include <stdio.h>
int main(void)
{
int data1, data2;
char op;
printf("please input data1 op data2:");
scanf("%d %c %d", &data1 , &op , &data2);
switch (op)
{
case '+':
printf("%d + %d = %.0f\n", data1, data2, (double)data1 + (double)data2);
break;
case '-':
printf("%d - %d = %.0f\n", data1, data2, (double)data1 - (double)data2);
break;
case '*':
printf("%d * %d = %.0f\n", data1, data2, (double)data1 * (double)data2);
break;
case '/':
if (data2 == 0)
{
printf("Error! chu shu wei 0.");
}
else
{
printf("%d / %d = %.0f\n", data1, data2, (double)data1 / (double)data2);
}
break;
case '%':
if (data2 == 0)
{
printf("Error! chu shu wei 0.");
}
else
{
printf("%d %% %d=%d3\n", data1, data2, data1 % data2);
}
break;
default:
printf("Unknown operator\n");
}
return 0;
}如果要求是浮點數的話換一下資料型別就可以了
用c語言程式設計一個簡單計算器,求其原始碼
/*
2013年12月23日 12:43:46
目的:計算器的實現
*/
# include <stdio.h>
# include <ctype.h>
# include <math.h>
char get_choice(void); 獲取使用者輸入的選項,並建立目
char get_first(void); 獲取使用者輸入的選項,並剔除錯誤輸入
float get_int(void); 獲取使用者輸入的計算值
float add(void); 定義加法函式
float subtraction(void); 定義減法函式
float multiplication(void); 定義乘法函式
float division(void); 定義除法函式
float extract(void); 定義開方函式
float square(void); 定義平方函式
float cube(void); 定義立方函式
int count = 0;
int main(void)
{
char choice;
printf("***歡迎使用由小錢製作的計算器***\n");
choice = get_choice();
while(choice != 'q')
{
switch(choice)
{
case 'a':
add(); break;
case 'b':
subtraction(); break;
case 'c':
multiplication(); break;
case 'd':
division(); break;
case 'e':
extract(); break;
case 'f':
square(); break;
case 'g':
cube(); break;
default :
printf("您輸入有誤,請重新輸入:"); break;
}
fflush(stdin);
choice = get_choice();
}
printf("bye");
return 0;
}
獲取使用者輸入的選項,並建立目錄
char get_choice(void)
{
char ch;
int a = 0;
建立目錄
printf("\n--------------------------------\n");
printf("a. 加法\t\t\tb. 減法\nc. 乘法\t\t\td. 除法\n");
printf("e. 開方\t\t\tf. 平方\ng. 立方\t\t\tq. 退出\n");
printf("--------------------------------\n");
printf("請輸入你的選項:");
ch = get_first();
while(ch == ' ' || ch == '\n' || ch == '\t')
ch = get_first();
判斷使用者輸入的選項是否有誤
while((ch<'a' || ch>'g') && ch !='q')
{
putchar(ch);
printf(" 你輸入的選項有誤,請重新輸入:");
ch = get_first();
}
return ch;
}
獲取使用者輸入的選項,並剔除錯誤輸入
char get_first(void)
{
char ch;
ch = getchar();
剔除由使用者輸入選項時產生的換行符
while(ch == '\n')
{
ch = getchar();
}
return ch;
}
獲取使用者輸入的計算值
float get_int(void)
{
float input;
char ch;
int a;
if(count == 0)
printf("親!請輸入數值:");
if(count == 1)
printf("親!請輸入第一個數值:");
if(count == 2)
printf("親!請輸入第二個數值:");
a = scanf("%f", &input);
判斷使用者的輸入是否為一個數值
while(a != 1)
{
剔除使用者輸入錯誤的字元
while((ch = getchar()) != '\n')
{
putchar(ch);
printf(" 不是一個數值,請輸入例如3、111.2、或者-1");
a = scanf("%f", &input);
}
}
return input;
}
定義加法函式
float add(void)
{
float i, j, sum;
count = 0;
count = count+1;
i = get_int();
count = count+1;
j = get_int();
sum = i + j;
printf("%.2f + %.2f = %.2f\n", i, j, sum);
return sum;
}
定義減法函式
float subtraction(void)
{
float i, j, sum;
count = 0;
count = count+1;
i = get_int();
count = count+1;
j = get_int();
sum = i - j;
printf("%.2f - %.2f = %.2f\n", i, j, sum);
return sum;
}
定義乘法函式
float multiplication(void)
{
float i, j, sum;
count = 0;
count = count+1;
i = get_int();
count = count+1;
j = get_int();
sum = i * j;
printf("%.2f * %.2f = %.2f\n", i, j, sum);
return sum;
}
定義除法函式
float division(void)
{
float i, j, sum;
count = 0;
count = count+1;
i = get_int();
count = count+1;
j = get_int();
判斷除數是否為0
while(j == 0)
{
printf("除數不能為0\n請重新輸入!!!\n");
j = get_int();
}
sum = i / j;
printf("%.2f / %.2f = %.2f\n", i, j, sum);
return sum;
}
定義開方函式
float extract(void)
{
float i, sum;
count = 0;
i = get_int();
判斷開方數是否小於0,如果小於0,則讓使用者重新輸入
while(i < 0)
{
printf("請輸入大於0的數值\n");
i = get_int();
}
sum = sqrt(i);
printf("%.2f的開方等於%.2f\n", i, sum);
return sum;
}
定義平方函式
float square(void)
{
float i, sum;
count = 0;
i = get_int();
sum = i * i;
printf("%.2f的平方等於%.2f\n", i, sum);
return sum;
}
定義立方函式
float cube(void)
{
float i, sum;
count = 0;
i = get_int();
sum = i * i * i;
printf("%f的立方等於%.3f\n", i, sum);
return sum;
}
⑩ c語言編寫 編寫一個簡單的計算器,實現兩個整型數的四則運算。
1、打開CodeBlocks,團孫新建一虛禪個空白文件,先定義頭文件和主函數,接著寫程序多大的主體: