當前位置:首頁 » 編程語言 » c語言簡單運算

c語言簡單運算

發布時間: 2023-03-17 17:49:36

1. c語言的四種基本運算是什麼

,-1,0,1,2,...),分為有符號整型(sign
int)、無符號整型(unsign
int)(即數學意義上的正數)、短整型(
short
int
)以及長整型(long
int),而我們通常定義的int系統默認為sign
int;
而上述四種類型int的主要區別是數值范圍不同,其中sign
int
的范圍是
-32767到32767;unsign
int
的范圍是
0到65534;而
long
int
范圍最大,short
int
范圍最小,你可以去查書。也就是說你所輸入的數據不能超過它的范圍。
(2)float(單精度)、double(雙精度)以及long
double(長雙精度),即數學意義上的實數(包括整數和所有小數);
而上述三種主要區別也是數值范圍不同,long
double
的范圍最大,其次是double
,最小是
float。
選取數據類型主要是看你所用數據是整數還是實數,是正數還是負數,以及所用數據的范圍而選用不同的數據類型。
方法一:(調用系統函數庫)
#include
"stdio.h"
#include
"math.h"
//調用系統函數庫
main()
{
float
p,r,n;
printf("請輸入r和n的值\n");
scanf("%f,%f",&r,&n);
p=pow((1+r),n);
//這就是所調用的函數
printf("%f\n",p);
}
方法二:(使用循環求值)
#include
"stdio.h"
main()
{
float
p,r,n,i;
printf("請輸入r和n的值\n");
scanf("%f,%f",&r,&n);
for(p=1,i=1;i<=n;i++)
//使用循環求值
p=p*(1+r);
printf("%f\n",p);
}
另外,站長團上有產品團購,便宜有保證

2. 簡單的用c語言寫一個計算器程式,加減乘除能用就好

簡單的用c語言寫一個計算器程式,加減乘除能用就好 #include"stdio.h"攔掘激
void main()
{
float a,b,c;
char e;
printf("input a,e,b\n");/*輸入兩個數和符號,例如3+8*/
scanf("%f%c%f",&a,&e,&b);
switch(e)
{
case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/':
if(b==0.0) printf("error\n");
else c=a/b;break;
}
printf("%f%c%f=%f",a,e,b,c);
}
如何用vc++編寫一個簡單的(只有加減乘除)計算器程式?
先設定介面如下
加法按鈕程式碼
void CMy03Dlg::OnBnClickedButton1()
{
TODO:在此新增控制元件通知處理程式程式碼
UpdateData(TRUE);
m_Nub3=m_Nub1+m_Nub2;
UpdateData(FALSE);
}
減法按鈕程式碼
void CMy03Dlg::OnBnClickedButton2()
{
TODO:在此新增控制元件通知處理程式程式碼
UpdateData(TRUE);
m_Nub3=m_Nub1-m_Nub2;
UpdateData(FALSE);
}
乘法按鈕程式碼
void CMy03Dlg::OnBnClickedButton3()
{
TODO:在此新增控制元件通知處理程式程式碼
UpdateData(TRUE);
m_Nub3=m_Nub1*m_Nub2;
UpdateData(FALSE);
}
除法按鈕程式碼
void CMy03Dlg::OnBnClickedButton4()
{
TODO:在此新增控制元件通知處理程式程式碼
UpdateData(TRUE);
if(m_Nub2!=0)
m_Nub3=m_Nub1 / m_Nub2;
else
AfxMessageBox("被除數不能為0");
UpdateData(FALSE);
}
清除按鈕程式碼
void CMy03Dlg::OnBnClickedButton5()
{
TODO:在此新增控制元件通知處理程式程式碼
UpdateData(TRUE);
m_Nub3=0;
m_Nub1=0;
m_Nub2=0;
UpdateData(FALSE);
}
結束按鈕程式碼
void CMy03Dlg::OnBnClickedButton6()
{
TODO:在此新增控制元件通知處理程式簡襪程式碼
CDialog::OnOK();
}
如果只允許在輸入框中輸入資料應該怎樣處理?
製作托盤程式
目的:在工作列中建立一個圖示,使該程式永遠駐留在記憶體中。例如郵件檢查程式可以作為駐留程式,一旦有郵件來了,就可以接收郵件。
Shell_NotifyIcon函式傳送訊息來增加、刪除、修散歷改工作列的圖示
BOOL TrayMessage(HWND hWnd, DWORD dwMessage, HICON hIcon, PSTR pszTip)
{
BOOL res;
NOTIFYICONDATA tnd;
tnd.cbSize = sizeof(NOTIFYICONDATA);
tnd.hWnd = hWnd;
tnd.uID = IDI_ICON1;
tnd.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;
tnd.uCallbackMessage = WM_MY_TRAY_NOTIFICATION;
tnd.hIcon = hIcon;
lstrcpyn(tnd.szTip, pszTip, sizeof(tnd.szTip));
res = Shell_NotifyIcon(dwMessage, &tnd); dwMessage為NIM_ADD從工作列中新增圖示、NIM_DELETE從工作列中刪除圖示、NIM_MODIFY改變工作列中圖示
if (hIcon)
DestroyIcon(hIcon);
return res;
}
定義一個回撥訊息:WM_MY_TRAY_NOTIFICATION
在DLG的CPP檔案中,
#define WM_MY_TRAY_NOTIFICATION WM_USER+100
為對話方塊新增訊息對映ON_MESSAGE(WM_MY_TRAY_NOTIFICATION,OnTrayNotification)
在DLG的標頭檔案中應該有
public:
long m_Nub1;
float m_Nub3;
CBitmapButton Button;
afx_msg void OnBnClickedButton1();
long m_Nub2;
afx_msg void OnBnClickedButton2();
afx_msg void OnBnClickedButton4();
afx_msg void OnBnClickedButton5();
afx_msg void OnBnClickedButton3();
afx_msg void OnBnClickedButton6();
afx_msg void OnBnClickedButton7();
afx_msg LRESULT OnTrayNotification(WPARAM wparam, LPARAM lparam);
在DLG的CPP檔案中應該有
BEGIN_MESSAGE_MAP(CMailCheckDlg, CDialog)
……
ON_MESSAGE(WM_MY_TRAY_NOTIFICATION,OnTrayNotification)
……
END_MESSAGE_MAP()
並定義一個回撥訊息函式
LRESULT CMailCheckDlg::OnTrayNotification(WPARAM wparam, LPARAM lparam)
{
switch (lparam )
{
case WM_RBUTTONUP:
case WM_LBUTTONDBLCLK:修改不同的按鈕處理事件,以觀察圖示退出效果。
ShowWindow(SW_SHOW);
TrayMessage(m_hWnd, NIM_DELETE, NULL, "");從工作列中刪除圖示
}
return 0;
}
在對話方塊視窗上新增「駐留」按鈕,雙擊按鈕新增程式碼
void CMailCheckDlg::OnBnClickedButton1()
{
TODO:在此新增控制元件通知處理程式程式碼
下面程式向工作列新增圖示
TrayMessage(m_hWnd, NIM_ADD, NULL, "計算器程式");
TrayMessage(m_hWnd, NIM_MODIFY, m_hIcon, "計算器程式");
ShowWindow(SW_HIDE);
用MFC編寫一個簡單的加減乘除計算器
我有程式,加31782771群
c語言計算器程式設計包含加減乘除簡單的函式運算
實用計算器之程式設計
[摘 要]多用計算器的構思及設計程式碼
[關鍵詞]多用計算器;設計
數值計算可以說是日常最頻繁的工作了,WIN98提供了「計算器」軟體供使用者使用,該軟體可以處理一般的一步四則運算,例如:3+2、5/3等等,但在日常中使用者經常遇到多步四則運算問題,例如:3+4*5-4/2,45*34/2+18*7等等,那麼該個計算器就無法勝任了,作者製作了一個實用的計算器,該計算器新增不少功能:(程式介面如圖)
1.可以實現連續的四則運算
2.可以實現輸入式子的顯示
3.可以方便計算個人所得稅
4.滑鼠、鍵盤均可輸入資料
5.操作介面友好
6.擊鍵可發聲
構建該個計算器所需研究及解決的核心問題有如下幾個:1、連乘求值?2、字元顯示 3、鍵盤輸入?4、擊鍵發聲?5、個人所得稅法規,為了使大家對程式有更一步認識,現將程式碼提供給讀者參考:
*定義陣列及窗體變數
Dim number2(0 To 50) As Double
Dim number(0 To 50) As Double
Dim z As Integer
Dim k As Integer, r As Integer
Dim j As Integer
Dim str As String
*呼叫名為「playsound」的API函式
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hMole As Long, ByVal dwFlags As Long) As Long
Private Const SND_FILENAME = &H20000?
Private Const SND_ASYNC = &H1?
Private Const SND_SYNC = &H0
*判斷通用過程
Sub pianan(p As String)
r = 0
Dim i As Integer, l As Integer, h As Integer
h = 0
i = 1
If InStr(Trim$(p), "*") <> 0 Then
k = k + 1
End If
If InStr(Trim$(p), "/") <> 0 Then
r = r + 1
End If
End Sub
*連乘通用過程(略)
*各按鈕事件過程
Private sub Command1_Click(Index As Integer)
PlaySound App.Path & "\start.wav", 0, SND_SYNC
Text1.Text = Text1.Text + Command1(Index).Caption
Text2.Text = Text2.Text + Command1(Index).Caption
Text1.SetFocus
End Sub
rivate sub Command10_Click()
PlaySound App.Path & "\start.wav", 0, SND_SYNC
str = Text3.Text
End Sub
Private sub Command11_Click()
PlaySound App.Path & "\start.wav", 0, SND_SYNC
Text3.Text = str
End Sub
rivate sub Command2_Click()
PlaySound App.Path & "\start.wav", 0, SND_SYNC
Dim totle As Double
Dim n As Integer
Call pianan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z) = totle
If Mid$(Trim$(Text1.Text), 1, 1) = "-" Then
number2(z) = -totle
End If
k = 0: r = 0
Else
number2(z) = Val(Text1.Text)
End If
Text1.Text = ""
Text2.Text = Text2 + "+"
z = z + 1
Text1.SetFocus
End Sub
rivate sub Command3_Click()
PlaySound App.Path & "\start.wav", 0, SND_SYNC
Dim totle As Double
Dim n As Integer
Call pianan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z) = totle
If Mid$(Trim$(Text1.Text), 1, 1) = "-" Then
number2(z) = -totle
End If
k = 0: r = 0
Else
number2(z) = Val(Text1.Text)
End If
Text1.Text = ""
Text2.Text = Text2 + "-"
Text1.Text = Text1.Text & "-"
z = z + 1
Text1.SetFocus
End Sub
Private sub Command4_Click()
PlaySound App.Path & "\start.wav", 0, SND_SYNC
Text2.Text = Text2.Text + "*"
Text1.Text = Text1.Text + "*"
Text1.SetFocus
End Sub
rivate sub Command5_Click()
PlaySound App.Path & "\start.wav", 0, SND_SYNC
Text2.Text = Text2 + "/"
Text1.Text = Text1 + "/"
Text1.SetFocus
End Sub
Private sub Command6_Click()
PlaySound App.Path & "\sound.wav", 0, SND_SYNC
Dim totle As Double
Dim n As Integer
Call pianan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z) = totle
If Mid$(Trim$(Text1.Text), 1, 1) = "-" Then
number2(z) = -totle
End If
k = 0: r = 0
Else
number2(z) = Val(Text1.Text)
End If
Text1.Text = ""
z = z + 1
Dim dengyu As Double
Dim v As Integer
For v = 0 To 50
dengyu = dengyu + number2(v)
Next v
If dengyu < 0 Then
Text3.ForeColor = &HFF&
Else
Text3.ForeColor = &HFF0000
End If
Text3.Text = dengyu
Text1.SetFocus
If Len(Text3.Text) >= 14 Then
calcresult.Show
End If
End Sub
rivate sub Command7_Click()
PlaySound App.Path & "\start.wav", 0, SND_SYNC
z = 0: k = 0: r = 0: j = 0
Dim i As Integer
For i = 0 To 50
number(i) = 0
number2(i) = 0
Next i
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End Sub
rivate sub Command8_Click()
PlaySound App.Path & "\start.wav", 0, SND_SYNC
If Val(Text3.Text) = 0 Then
MsgBox "除數不能為0!"
Exit Sub
End If
Text3.Text = 1 / Val(Text3.Text)
End Sub
Private sub Command9_Click()
PlaySound App.Path & "\start.wav", 0, SND_SYNC
Text3.ForeColor = &HFF0000
Text3.Text = Val(Text3.Text) * Val(Text3.Text)
End Sub
rivate sub muninter_Click()
Dim i
i = Shell("C:\Program Files\InterExplorer\iexplore.exe", vbMaximizedFocus)
End Sub
rivate sub munmp3_Click()
Dim i
i = Shell("C:\Program Files\Windows Media Player\mplayer2", vbNormalNoFocus)
End Sub
Private sub mun *** _Click()
Dialog.Show
End Sub
rivate sub muntax_Click()
tax.Show
End Sub
rivate sub munver_Click()
ver.Show
End Sub
rivate sub notepad_Click()
Dim i
i = Shell("c:\windows\notepad", vbNormalFocus)
End Sub
Private sub Text1_KeyPress(KeyAscii As Integer)
PlaySound App.Path & "\start.wav", 0, SND_SYNC
Dim num As Integer
num = Val(KeyAscii)
If num > 47 And num < 58 Then
Text1.Text = Text1.Text + CStr(num - 48)
Text2.Text = Text2.Text + CStr(num - 48)
End If
If num = 46 Then
Text1.Text = Text1.Text + "."
Text2.Text = Text2.Text + "."
End If
If KeyAscii = 43 Then
Dim totle As Double
Dim n As Integer
Call pianan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z) = totle
If Mid$(Trim$(Text1.Text), 1, 1) = "-" Then
number2(z) = -totle
End If
k = 0: r = 0
Else
number2(z) = Val(Text1.Text)
End If
Text1.Text = ""
Text2.Text = Text2 + "+"
z = z + 1
End If
If KeyAscii = 45 Then
Call pianan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z) = totle
If Mid$(Trim$(Text1.Text), 1, 1) = "-" Then
number2(z) = -totle
End If
k = 0: r = 0
Else
number2(z) = Val(Text1.Text)
End If
Text1.Text = ""
Text2.Text = Text2 + "-"
Text1.Text = Text1.Text & "-"
z = z + 1
End If
If KeyAscii = 42 Then
Text2.Text = Text2.Text + "*"
Text1.Text = Text1.Text + "*"
End If
If KeyAscii = 47 Then
Text2.Text = Text2.Text + "/"
Text1.Text = Text1.Text + "/"
End If
If KeyAscii = vbKeyReturn Then
PlaySound App.Path & "\sound.wav", 0, SND_SYNC
Call pianan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z) = totle
If Mid$(Trim$(Text1.Text), 1, 1) = "-" Then
number2(z) = -totle
End If
k = 0: r = 0
Else
number2(z) = Val(Text1.Text)
End If
Text1.Text = ""
z = z + 1
Dim dengyu As Double
Dim v As Integer
For v = 0 To 50
dengyu = dengyu + number2(v)
Next v
If dengyu < 0 Then
Text3.ForeColor = &HFF&
Else
Text3.ForeColor = &HFF0000
End If
Text3.Text = dengyu
End If
If KeyAscii = vbKeyEscape Then
z = 0: k = 0: r = 0: j = 0
Dim i As Integer
For i = 0 To 50
number(i) = 0
number2(i) = 0
Next i
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End If
If Len(Text3.Text) >= 14 Then
calcresult.Show
End If
End Sub
rivate sub Text3_Change()
tax2.Text1 = Text3.Text
End Sub
用c語言編寫能運算加減乘除的計算器程式,用到棧
#include "stdio.h"
#include "string.h"
#include "ctype.h"
#include "math.h"
expression evaluate
#define iMUL 0
#define iDIV 1
#define iADD 2
#define iSUB 3
#define iCap 4
#define LtKH 5
#define RtKH 6
#define MaxSize 100
void iPush(float);
float iPop();
float StaOperand[MaxSize];
int iTop=-1;

char Srcexp[MaxSize];
char Capaexp[MaxSize];
char RevPolishexp[MaxSize];
float NumCapaTab[26];
char validexp[]="*/+-()";
char NumSets[]="0123456789";
char StackSymb[MaxSize];
int operands;

void NumsToCapas(char [], int , char [], float []);
int CheckExpress(char);
int PriorChar(char,char);
int GetOperator(char [], char);
void counterPolishexp(char INexp[], int slen, char Outexp[]);
float CalcRevPolishexp(char [], float [], char [], int);
void main()
{
int ilen;
float iResult=0.0;
printf("enter a valid number string:\n");
memset(StackSymb,0,MaxSize);
memset(NumCapaTab,0,26); A--NO.1, B--NO.2, etc.
gets(Srcexp);
ilen=strlen(Srcexp);
printf("source expression:%s\n",Srcexp);
NumsToCapas(Srcexp,ilen,Capaexp,NumCapaTab);
printf("Numbers listed as follows:\n");
int i;
for (i=0; i<operands; ++i)
printf("%.2f ",NumCapaTab[i]);
printf("\nCapaexp listed in the following:\n");
printf("%s\n",Capaexp);
ilen=strlen(Capaexp);
counterPolishexp(Capaexp,ilen,RevPolishexp);
printf("RevPolishexp:\n%s\n",RevPolishexp);
ilen=strlen(RevPolishexp);
iResult=CalcRevPolishexp(validexp, NumCapaTab, RevPolishexp,ilen);
printf("\ncounterPolish expression:\n%s%.6f\n",Srcexp,iResult);
}
void iPush(float value)
{
if(iTop<MaxSize) StaOperand[++iTop]=value;
}
float iPop()
{
if(iTop>-1)
return StaOperand[iTop--];
return -1.0;
}
void NumsToCapas(char Srcexp[], int slen, char Capaexp[], float NumCapaTab[])
{
char ch;
int i, j, k, flg=0;
int sign;
float val=0.0,power=10.0;
i=0; j=0; k=0;
while (i<slen)
{
ch=Srcexp[i];
if (i==0)
{
sign=(ch=='-')?-1:1;
if(ch=='+'||ch=='-')
{
ch=Srcexp[++i];
flg=1;
}
}
if (isdigit(ch))
{
val=ch-'0';
while (isdigit(ch=Srcexp[++i]))
{
val=val*10.0+ch-'0';
}
if (ch=='.')
{
while(isdigit(ch=Srcexp[++i]))
{
val=val+(ch-'0')/power;
power*=10;
}
} end if
if(flg)
{
val*=sign;
flg=0;
}
} end if
write Capaexp array
write NO.j to array
if(val)
{
Capaexp[k++]='A'+j;
Capaexp[k++]=ch;
NumCapaTab[j++]=val; A--0, B--1,and C, etc.
}
else
{
Capaexp[k++]=ch;
}
val=0.0;
power=10.0;

i++;
}
Capaexp[k]='\0';
operands=j;
}
float CalcRevPolishexp(char validexp[], float NumCapaTab[], char RevPolishexp[], int slen)
{
float sval=0.0, op1,op2;
int i, rt;
char ch;
recursive stack
i=0;
while((ch=RevPolishexp[i]) && i<slen)
{
switch(rt=GetOperator(validexp, ch))
{
case iMUL: op2=iPop(); op1=iPop();
sval=op1*op2;
iPush(sval);
break;
case iDIV: op2=iPop(); op1=iPop();
if(!fabs(op2))
{
printf("overflow\n");
iPush(0);
break;
}
sval=op1/op2;
iPush(sval);
break;
case iADD: op2=iPop(); op1=iPop();
sval=op1+op2;
iPush(sval);
break;
case iSUB: op2=iPop(); op1=iPop();
sval=op1-op2;
iPush(sval);
break;
case iCap: iPush(NumCapaTab[ch-'A']);
break;
default: ;
}
++i;
}
while(iTop>-1)
{
sval=iPop();
}
return sval;
}
int GetOperator(char validexp[],char oper)
{
int oplen,i=0;
oplen=strlen(validexp);
if (!oplen) return -1;
if(isalpha(oper)) return 4;
while(i<oplen && validexp[i]!=oper) ++i;
if(i==oplen || i>=4) return -1;
return i;
}
int CheckExpress(char ch)
{
int i=0;
char ;
while((=validexp[i]) && ch!=) ++i;
if (!)
return 0;
return 1;
}
int PriorChar(char curch, char stach)
{
棧外優先順序高於(>)棧頂優先順序時,才入棧
否則(<=),一律出棧
if (curch==stach) return 0; 等於時應該出棧
else if (curch=='*' || curch=='/')
{
if(stach!='*' && stach!='/')
return 1;
}
else if (curch=='+' || curch=='-')
{
if (stach=='(' || stach==')')
return 1;
}
else if (curch=='(')
{
if (stach==')')
return 1;
}
return 0;
}
void counterPolishexp(char INexp[], int slen, char Outexp[])
{
int i, j, k,pr;
char t;
i=0;
j=k=0;
while (INexp[i]!='=' && i<slen)
{
if (INexp[i]=='(')
StackSymb[k++]=INexp[i];
iPush(*(INexp+i));
else if(INexp[i]==')')
{
if((t=iPop())!=-1)
while((t=StackSymb[k-1])!='(')
{
Outexp[j++]=t;
k--;
}
k--;
}
else if (CheckExpress(INexp[i])) is oparator
{
printf("operator %c k=%d\n",INexp[i],k);
while (k)
{
iPush(*(INexp+i));
if(pr=PriorChar(INexp[i],StackSymb[k-1]))
break;
else
{
if ((t=iPop())!=-1)
t=StackSymb[k-1]; k--;
Outexp[j++]=t;
}
} end while
StackSymb[k++]=INexp[i]; mon process
}
else if() 變數名
{
printf("operand %c k=%d\n",INexp[i],k);
Outexp[j++]=INexp[i];
}
i++;
}
while (k)
{
t=StackSymb[k-1]; k--;
Outexp[j++]=t;
}
Outexp[j]='\0';
}
註:程式源於「網路知道」

用verilog編寫一個最簡單的加減乘除的計算器的程式
verilog是有加法器乘法器的。也直接識別 + - * / 符號。
mole kjasdja(a,option,b,result);
input option,a,b;
output result;
always @(a,b,option)
begin
result_r=0; 結果暫存器清零
case(option)
+:result_r=a+b;
-:result_r=a-b;
*:result_r=a*b;
/:result_r=a/b;
assign result =result_r;
endmole
大概演演算法就這樣。寫的倉促,語法可能有誤。另外除法reg型別只能儲存整數部分,小數通過移位操作實現,比較麻煩。比如3/5=0.6
做的時候先3=30,然後30/5=6,然後對6在數碼管的顯示進行調整就好。把6顯示在小數點後面1位就好
用vb編寫一個計算器程式,實現加減乘除,
Dim v As Boolean
Dim s As Integer
Dim X As Double
Dim Y As Double
Private Sub Command1_Click(Index As Integer)
If Form1.Tag = "T" Then
If Index = 10 Then
Text1.Text = "0"
Else
Text1.Text = Command1(Index).Caption
End If
Form1.Tag = ""
Else
Text1.Text = Text1.Text & Command1(Index).Caption
End If
End Sub
Private Sub Command2_Click(Index As Integer)
Form1.Tag = "T"
If v Then
X = Val(Text1.Text)
v = Not v
Else
Y = Val(Text1.Text)
Select Case s
Case 0
Text1.Text = X + Y
Case 1
Text1.Text = X - Y
Case 2
Text1.Text = X * Y
Case 3
If Y <> 0 Then
Text1.Text = X / Y
Else
MsgBox ("不能以0為除數")
Text1.Text = X
v = False
End If
Case 4
Y = 0
v = False
End Select
X = Val(Text1.Text)
End If
s = Index
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
控制元件自己新增吧,空間名要和程式碼名一致
求一簡單的加減乘除計算器c++程式
#include<stdio.h>
#include<math.h>
void main()
{
float a,b;
char C;
while(1)
{
scanf("%f%c%f",&a,&C,&b);
if((C!='+')&&(C!='-')&&(C!='*')&&(C!='/'))
break;
switch(C)
{
case '+': printf("%f+%f=%f",a,b,a+b);
break;
case '-': printf("%f-%f=%f",a,b,a-b);
break;
case '*': printf("%f*%f=%f",a,b,a*b);
break;
case '/': printf("%f/%f=%f",a,b,a/b);
break;
}
}
}
想改成按1 2 3 4分別為加減乘除,只需要將程式中的+ - * / 改成1 2 3 4即可。按除了+ - * / 以外的鍵就會退出。
用c++語言編寫一個簡單的計算器程式,會加減乘除就行,本人初學不太會,特訓求幫助
這個是最簡單,簡陋的計算器。很多情況沒考慮進去,例如除數不能為0之類的,真要寫完整的話程式碼還要更多。
程式碼如下: #include <iostream>using namespace std;int main(){ float a, b, result; char operation; cout << "請輸入算式,如1+2並回車:" << endl; cin >> a >> operation >> b; switch(operation) { case '+': result = a + b; break; case '-': result = a - b; break; case '*': result = a * b; break; case '/': result = a / b; break; default: cout << "輸入非法,程式退出!" << endl; return -1; } cout << endl << "結果為:" << endl << a << operation << b << "=" << result << endl; return 0;}

知道switch函式 嗎 用這個就行
建倆個int型變數 一個字元型變數

3. C語言有哪些運算符

下面按優先順序從高到低的順序總結一下各種運算符,每一條所列的各運算符具有相亮者同的優先 級,對於同一優先順序的多個運算符按什麼順序計算也有說明,雙目運算符就簡單地用「左結 合」或「右結合」來說明了。和指針有關的運算符* & ->也在這里列出來了,以後再詳細解釋。

1 、標識符、常量、字元串和用()括弧套起搜帶來的表達式是組成表達式的最基本單元,在運算中做 操作數,優先順序最世鍵蘆高。

2、後綴運算符,包括數組取下標[]、函數調用()、結構體取成員.、指向結構體的指針取成員- >、後綴自增++、後綴自減--。如果一個操作數後面有多個後綴,按照離操作數從近到遠的順序 (也就是從左到右)依次運算,比如a.name++,先算a.name,再++,這里的.name應該看成a的 一個後綴,而不是把. 看成雙目運算符。

3、單目運算符,包括前綴自增++、前綴自減--、 sizeof、類型轉換()、取地址運算&、指針間接 定址*、正號+、負號-、按位取反~、邏輯非! 。如果一個操作數前面有多個前綴,按照離操作數 從近到遠的順序(也就是從右到左)依次運算,比如!~a,先算~a,再求!。

4、乘*、除/、模%運算符。這三個運算符是左結合的。 5、加+、減-運算符。左結合。

6、移位運算符<<和>>。左結合。

7、關系運算符< > <= >=。左結合。

8、相等性運算符==和!=。左結合。

9、按位與&。左結合。

10、按位異或^。左結合。

11 、按位或|。左結合。

12、邏輯與&&。左結合。

13、邏輯或||。左結合。

14、條件運算符:?。在第 2 節 「if/else語句」講過Dangling-else問題,條件運算符也有類似的問 題。例如a ? b : c ? d : e是看成(a ? b : c) ? d : e還是a ? b : (c ? d : e) ? C語言規 定是後者。

15、賦值=和各種復合賦值(*= /= %= += -= <<= >>= &= ^= |=)。右結合。

16、逗號運算符。左結合。

4. 用c語言編四則運算

用C++寫的,用C的話,函數方面很繁瑣...
實現不止是整數,小數也可以,但算式中不要有負數,結果中可以有.
2000字不夠用,分兩部分,前一部分一些全局變數和類的申明:
#include
<iostream.h>
#include
<string.h>
#include
<stdlib.h>
#include
<math.h>
#define
MAX
100
//定義運算優先順序數組,1表示優先,0表示相等,-1表示非優先,2表示表達式有誤
int
com_value[9][9]=
{
1,1,-1,-1,-1,1,1,1,2,
1,1,-1,-1,-1,1,1,1,2,
1,1,1,1,-1,-1,1,1,2,
1,1,1,1,-1,-1,1,1,2,
1,1,1,1,2,-1,1,1,2,
-1,-1,-1,-1,-1,-1,0,2,2,
1,1,1,1,1,2,1,1,2,
-1,-1,-1,-1,-1,-1,2,0,2,
2,2,2,2,2,2,2,2,2
};
//堆棧類模板
template
<class
type>
class
stack
{
public:
stack(){top=new
type[MAX];};
~stack(){};
type
*top;
public:
void
push(type
e){*top=e;top++;}
type
pop(){top--;return*top;}
type
GetTop(){return
*(top-1);}
int
GetTopValue(type
&e)
{
if(e=='+')return
0;else
if(e=='-')return
1;
else
if(e=='*')return
2;else
if(e=='/')return
3;
else
if(e=='^')return
4;else
if(e=='(')return
5;
else
if(e==')')return
6;else
if(e=='=')return
7;
else
return
8;
}
int
GetTopValue()
{
type
temp=GetTop();
if(temp=='+')return
0;else
if(temp=='-')return
1;
else
if(temp=='*')return
2;else
if(temp=='/')return
3;
else
if(temp=='^')return
4;else
if(temp=='(')return
5;
else
if(temp==')')return
6;else
if(temp=='=')return
7;
else
return
8;
}
type
calculate(char
s)
{
type
b=pop(),a=pop();
if(s=='+')return
a+b;
if(s=='-')return
a-b;
if(s=='*')return
a*b;
if(s=='/')return
a/b;
if(s=='^')return
pow(a,b);
}
};

5. c語言編寫 編寫一個簡單的計算器,實現兩個整型數的四則運算。

1、打開CodeBlocks,新建一個空白文件,先定義頭文件和主函數,接著寫程序多大的主體:

6. c語言簡單求和,編寫程序:輸入兩個數,求兩個數的和

利用C語言編寫一個求兩數相加的和的編程思想和方法如下:

1.首先需要定義三個變數a,b,c,兩個為相加的數,第三個為相加後得到的和。

7. C語言的基本運算

算術運算

C語言一共有34種運算符,包括了常見的加減乘除運算

加法運算+

減法運算-

乘法運算*

除法運算/

取余運算%

自增自減

簡單使用

5++是錯誤的

++a和a++的區別

sizeof

作用

基本形式

邏輯運算

1.&& 邏輯與

1> 使用格式

2> 運算結果

3> 運算過程

4> 舉例

5> 注意

|| 邏輯或

1> 使用格式

2> 運算結果

3> 運算過程

4> 舉例

5>注意

! 邏輯非

1> 使用格式

2> 運算結果

3> 舉例

4> 注意

三目運算符

N目運算符->三目運算符

8. 簡單的c語言加減乘除運算

#include"stdio.h"
intchuli(inti);
voidmain()
{
inta=0,i=0,x=0,u=0,s[100],zi,b=0;
charc,f[100];
for(i=0;;i++)
{
for(x=0;(c=getchar())>='0'&&c<='9';x++)
{
u=c-'0';
if(x==0)
zi=u;
elsezi=zi*10+u;
}
s[a]=zi;
if(c!='['&&c!=']')
f[a++]=c;

if(c=='[')
s[0]=chuli(i);
if(c=='=')
break;
}

for(a=0;a<=i;a++)
{
x=a+1;
if((f[a]=='*'||f[a]=='/')&&b==0){u=a;b=1;}
if(f[a]=='+'||f[a]=='-')b=0;
if(f[a]=='*'){s[u]=s[u]*s[x];f[a]='+';s[x]=0;}
if(f[a]=='/'){s[u]=s[u]/s[x];f[a]='+';s[x]=0;}
}
for(a=0;a<=i;a++)
{
x=a+1;
if(f[a]=='+'){s[0]=s[0]+s[x];}
if(f[a]=='-'){s[0]=s[0]-s[x];}
}
printf("%d",s[0]);
}

intchuli(inti)
{
intshu[100],d=0,f=0,g=0,ha,l=0,q=0;
charw,fu[100];
for(d=0;;d++)
{
for(f=0;(w=getchar())>='0'&&w<='9';f++)
{
g=w-'0';
if(f==0)ha=g;
elseha=ha*10+g;
}
shu[l]=ha;
if(w!='['&&w!=']')fu[l++]=w;
if(w==']')break;
}
for(l=0;l<=d;l++)
{
g=l+1;
if((fu[l]=='*'||fu[l]=='/')&&q==0){f=l;q=1;}
if(fu[l]=='+'||fu[l]=='-')q=0;
if(fu[l]=='*'){shu[f]=shu[f]*shu[g];fu[l]='+';shu[g]=0;}
if(fu[l]=='/'){shu[f]=shu[f]/shu[g];fu[l]='+';shu[g]=0;}
}
ha=shu[0];
for(l=0;l<=d;l++)
{
g=l++;
if(fu[l]=='+')ha=ha+shu[g];
if(fu[l]=='-')ha=ha-shu[g];
}
ha=99;
printf(" %d ",ha);
returnha;
}

熱點內容
動態規劃01背包演算法 發布:2024-11-05 22:17:40 瀏覽:847
nasm編譯器如何安裝 發布:2024-11-05 22:01:13 瀏覽:177
登錄密碼在微信的哪裡 發布:2024-11-05 22:00:29 瀏覽:736
c防止反編譯工具 發布:2024-11-05 21:56:14 瀏覽:244
安卓虛擬機怎麼用 發布:2024-11-05 21:52:48 瀏覽:342
php時間搜索 發布:2024-11-05 20:58:36 瀏覽:478
燕山大學編譯原理期末考試題 發布:2024-11-05 20:13:54 瀏覽:527
華為電腦出現臨時伺服器 發布:2024-11-05 20:05:08 瀏覽:407
斗戰神免費挖礦腳本 發布:2024-11-05 19:53:25 瀏覽:664
網吧伺服器分別是什麼 發布:2024-11-05 19:45:32 瀏覽:391