❶ c語言加減乘除運算代碼
方法如下:
設備:華為筆記本。
系統:win7。
軟體:Code Blocks。
版本:8.0.11。
1、首先打開Code Blocks軟體,新建一個C語言文件,如下圖所示。
❷ C語言中如何實現加減乘除運算
實現方法如下:
讀入的時候用%x讀入,然後在程序裡面直接用+,-,*,/運算就行了,輸出的時候再用%x。
❸ 用C語言怎樣實現計算器加減乘除功能
我學c++時寫的
#include<iostream.h>
#include "string"
int count(int a,int b,char c)
{
if(c=='+') return a+b;
if(c=='-') return a-b;
if(c=='/') return a/b;
if(c=='*') return a*b;
}
void main()
{
char str[100];
cin>>str;
int number[10]={0};
char sign[10];
int i,j=0,k=0,m;
int strlong=strlen(str);//#include "string"
cout<<strlong;
for(i=0;i<strlong;i++)
{
if(str[i]>='0'&&str[i]<='9')
number[j]=number[j]*10+str[i]-48;
else
{j++;
sign[k]=str[i];
k++;}
}
j++;
//cout<<j<<k;
for(i=0;i<j;i++)
cout<<number[i]<<endl;
for(i=0;i<k;i++)
cout<<sign[i]<<endl;
for( i=0;i<k;i++)
{
if(sign[i]=='/'||sign[i]=='*')
{number[i]=count(number[i],number[i+1],sign[i]);
cout<<number[i];
for(m=i;m<k-i;m++)
{sign[m]=sign[m+1];number[m+1]=number[m+2];}
k--;i--;}
}
for( i=0;i<k;i++)
{ if(sign[i]=='+'||sign[i]=='-')
{number[i]=count(number[i],number[i+1],sign[i]);
cout<<number[i];
for(m=i;m<k-i;m++)
{sign[m]=sign[m+1];number[m+1]=number[m+2];}
k--;i--;}
}
for (i=0;i<3;i++)
{cout<<number[i];
}
cout<<k;
}
2.堆棧
#include "string"
#include "iostream"
#include<vector>
#include<list>
#include<cstdlib>
using namespace std;
//自定義類型 用於存儲 兩種數據類型
class newType
{
public:
bool flag;//true 為f false 為 c
union
{
float f;
char c;
}data;
};
//將字元串轉換為 數字數組和字元數組 (通用提取字元串中數字)
bool couvert(string str,vector<float> &numbers,vector<char> &chars,vector<newType> &all)//這里要使用引用
{
int len=str.length();
bool flag=true;
int pos=0;
for(int i=0;i<len;i++)
{
if(str[i]>='0'&&str[i]<='9'||str[i]=='.')
{
if (flag)
{
string substr=str.substr(i,len) ;
float f=atof(substr.data());
numbers.push_back(f);
//添加f到all向量中
newType n;
n.data.f=f;
n.flag=true;
all.push_back(n);
}
flag=false;
}
else
{
//chars.push_back(str[i]);
chars.push_back(str[i]);
newType n;
n.data.c=str[i];
n.flag=false;
all.push_back(n);
flag=true;
}
}//for
return true;
}
//計算沒有括弧的表達式
bool calculate(vector<float> numbers,
vector<char> chars,float &value)
{
//計算四者表達式 無括弧類型 1+2*3+4
int ii=0;
//先計算乘除
while(ii<chars.size())
//注意while(ii<(chars.size()-2)) 和while(ii<chars.size()-2) 區別
{
switch(chars[ii])
{
case '*':
numbers[ii]=numbers[ii]*numbers[ii+1];
numbers.erase(numbers.begin()+ii+1); //移除number[ii]後面的數
chars.erase(chars.begin()+ii); //移除chars[ii]
ii--;
break;
case '/':
numbers[ii]=numbers[ii]/numbers[ii+1];
numbers.erase(numbers.begin()+ii+1);
chars.erase(chars.begin()+ii);
ii--;
break;
}
ii++;
}
//只剩下加減 計算加減
ii=0;
while(ii<chars.size())
//注意while(ii<(chars.size()-2)) 和while(ii<chars.size()-2) 區別
{
switch(chars[ii])
{
case '+':
// cout<<"+::"<<numbers[ii]<<chars[ii]<<numbers[ii+1]<<endl;
numbers[ii]=numbers[ii]+numbers[ii+1];
numbers.erase(numbers.begin()+ii+1); //移除number[ii]後面的數
chars.erase(chars.begin()+ii); //移除chars[ii]
break;
case '-':
// cout<<"-::"<<numbers[ii]<<chars[ii]<<numbers[ii+1]<<endl;
numbers[ii]=numbers[ii]-numbers[ii+1];
numbers.erase(numbers.begin()+ii+1);
chars.erase(chars.begin()+ii);
break;
}
// ii++;
}
value=numbers[0];//得到值
return true;
}
//計算帶括弧的表達式
int calculate1( vector<newType> all,float &value)
{
int pos=0;
vector<float> numbers;
vector<char> chars;
float va=0;
for(int i=0;i<all.size();i++)
{
if (all[i].flag)//判斷是數字還是字元
{
cout<<"數字"<<i<<":"<<all[i].data.f<<endl;
}
else
{
cout<<"字元"<<i<<":"<<all[i].data.c<<endl;
if (all[i].data.c==')') //如果是右括弧 將之前的()之間的括弧內容
{ //用calculate計算 並替換
for (int j=pos+1;j<i;j++) //參數轉換
{
if (all[j].flag)
{
numbers.push_back(all[j].data.f);
} else{
chars.push_back(all[j].data.c);
}
}
calculate(numbers,chars,va);
numbers.clear();
chars.clear();
newType ne;
ne.data.f=va;
all.erase(all.begin()+pos,all.begin()+i+1);
all.insert(all.begin()+pos,ne);
i=pos+1;
}
else if (all[i].data.c=='(')
{
pos=i;//記錄此時左括弧的位置
}
}//else
}//for
for(int kk=0;kk<all.size();kk++)
{
if (all[kk].flag)
{
numbers.push_back(all[kk].data.f);
} else{
chars.push_back(all[kk].data.c);
}
}
for( i=0;i<all.size();i++)
{
if (all[i].flag)
{
cout<<all[i].data.f<<" ";
} else
{
cout<<all[i].data.c<<" ";
}
}
calculate(numbers,chars,value);
return 1;
} void main()
{
//
string str="10+(2*3+8)+(10*2)";
vector<float> numbers;
vector<char> chars;
vector<newType> all;
couvert(str, numbers, chars,all);
for(int i=0;i<all.size();i++)
{
if (all[i].flag)
{
cout<<all[i].data.f<<" ";
} else
{
cout<<all[i].data.c<<" ";
}
}
float value,value1;
// calculate(numbers,chars,value);
calculate1(all,value1);
cout<<value1;
}
這是我翻家底找到的 .
❹ C語言實現加減乘除運算
按照你的程序運行後。。。在輸入c值的時候
程序直接結束了。。。還有就是每個case語句後記著加上break跳出不過也有不過根據具體需要也可以不加break;但是你的這個程序需要加上break;
原因是:回車符也是字元,所以你按回後,程序以為是輸入了c的值了,而在輸入b值成功是因為
回車符不是數字形式的。
以下是我改過的程序,編譯運行都很好的
#include
#include
void main()
{
float a,b;
char c;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
//這種情況經常遇到。。。。輸入完後回車被下一個scanf("%c",&c)捕獲了。
//因為回車符也是字元,所以你按回車後,程序以為是輸入了c的值了
//所以加上下面一行,把回車符取走就可以了。。。。
getchar();
printf("\n input c:");
scanf("%c",&c);
//printf("\n%c",c);
switch(c)
{
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: break;
}
//為了好看
printf("\n");
}
❺ c語言實現簡單的加減乘除
1、打開C-Free5.0新建一個空白頁面,然後將C語言的基礎格式寫完,注意格式縮進。如下圖所示。
❻ C語言計算加減乘除
簡單寫了一個如下:
#include<stdio.h>
#include<string.h>
intmain()
{
doublea,b;
charop;
scanf("%lf%c%lf",&a,&op,&b);
if(op=='+'){
printf("%g+%g=%g",a,b,a+b);
}
elseif(op=='-'){
printf("%g-%g=%g",a,b,a-b);
}
elseif(op=='*'){
printf("%g*%g=%g",a,b,a*b);
}
elseif(op=='/'){
printf("%g/%g=%g",a,b,a/b);
}
return0;
}
❼ 簡單的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;
}
❽ C語言的基本運算
算術運算
C語言一共有34種運算符,包括了常見的加減乘除運算
加法運算+
減法運算-
乘法運算*
除法運算/
取余運算%
自增自減
簡單使用
5++是錯誤的
++a和a++的區別
sizeof
作用
基本形式
邏輯運算
1.&& 邏輯與
1> 使用格式
2> 運算結果
3> 運算過程
4> 舉例
5> 注意
|| 邏輯或
1> 使用格式
2> 運算結果
3> 運算過程
4> 舉例
5>注意
! 邏輯非
1> 使用格式
2> 運算結果
3> 舉例
4> 注意
三目運算符
N目運算符->三目運算符