當前位置:首頁 » 編程軟體 » 如何編程加減

如何編程加減

發布時間: 2022-03-05 06:28:57

c語言編寫加減計算程序

#include <stdio.h>

main (void)

{
int a,b,c;
char op;
scanf ("%d%c%d",&a,&op,&b);//最好空格去掉,這樣就可以直接寫成a+b或者a-b。如果有空格的話要記得空格也要打a + b。要不會出現錯誤 ,而且輸入的時候需要用地址符&····

if(op=='+')
{c=a+b;}

if(op=='-')
{c=a-b;}
printf("%d%c%d=%d\n",a,op,b,c);//樓主這句應該放在數據處理完後。。要不你輸出的a,op,b都是在沒處理過的數,也就是原來的值,而且最好是把,去掉,這樣更美觀 ,而且printf後面不需要&。。。切記。而且沒必要那樣輸出。請樓主看我的printf```
}

② C語言編程中,怎樣使輸出的加減乘除是運算符

#include<stdio.h>
#include<string.h>
#define N 100

typedef struct{ //操作數棧
float d[N];
int len; //len相當於top
}stacks,*lists;

typedef struct{ //運算符棧
char c[N];
int len; //len相當於top
}stack,*list;

int init(list p); //stack 初始化
int inits(lists p); //stacks 初始化
int pushs(lists p,float m); // stacks 入棧
int push(list p,char c); //stack 入棧
int pops(lists p,float *m); //stacks 出棧
int pop(list p,char *c); //stack 出棧
int in(char c); //判斷C是否為數據 是則返回 1 否則 返回 0
char pre(char s,char c); //判斷s c的優先順序 s>c return '>'; s<c return '<';s=c return '=' ;
float operate(float a,char t,float b); //對a b進行t(+-*/)運算 return a+b or a-b, a*b ,a/b
float value(char s[]); //求表達式S 的值

void main(){
char s[N]; int n; float f;
printf("*******************Express Evaluate***********************\n");
while(1){
printf("please input a express\n");
scanf("%s",s); //輸入表達式
n=strlen(s); //求表達式的長度
printf("express length=%d\n",n); //輸出表達式的長度
s[n]='#'; //在表達式尾部插入'#' 注: # 表示操作結束
f=value(s); //計算表達式的長度
printf("f=%.5f\n",f); //輸出表達時的值 注 只輸出前五位小數
printf("continue input 1,break input 0\n");
scanf("%d",&n); printf("\n"); //判斷是否繼續進操作 是則輸入 1,否則輸入 0
if(!n) break; }
}

int init(list p){
if(!p) {printf("Error,init stack NULL\n"); return 0;}
p->len=0;
return 1;
}
int inits(lists p){
if(!p) {printf("Error,init stacks NULL\n"); return 0;}
p->len=0;
return 1;
}
int pushs(lists p,float m){
if(!p) {printf("Error,pushs stacks NULL\n"); return 0;}
p->d[p->len++]=m; return 1;
}
int push(list p,char c){
if(!p) {printf("Error,push stack NULL\n"); return 0;}
p->c[p->len++]=c; return 1;
}
int pops(lists p,float *m){
if(!p) {printf("Error,push stacks NULL\n"); return 0;}
*m=p->d[--p->len]; return 1;
}
int pop(list p,char *c){
if(!p) {printf("Error,push stack NULL\n"); return 0;}
*c=p->c[--p->len]; return 1;
}
int in(char c){ //判斷C是否為數據 是則返回 1 否則 返回 0
if(c>='0'&&c<='9'||c=='.') return 1; return 0;}
char pre(char s,char c){ //判斷s c的優先順序 s>c return '>'; s<c return '<';s=c return '=' ;
char m= '<' , n= '=' , k='>' , r;
if((s=='-')||(s=='+')){
if((c=='*')||(c=='(')||(c=='/'))
r=m;
else r=k; }
if((s=='*')||(s=='/')){
if((c=='(')) r=m;
else r=k; }
if(s=='('){
if(c==')') r=n;
else r=m; }
if(s==')')
r=k;
if(s=='#') {
if(c=='#') r=n;
else r=m; }
return r;
}
float operate(float a,char t,float b){ //對a b進行t(+-*/)運算 return a+b or a-b, a*b ,a/b
if(t=='-') return a-b; if(t=='+') return a+b;
if(t=='*') return a*b; if(t=='/') return a/b; }

float value(char s[]){
stacks opnd; stack optr; char *p,*pr,x,t; float a,b,m=0;
inits(&opnd); init(&optr); int k=0,i,tp=10;
push(&optr,'#'); //將'#'壓入棧optr中,作結束標志
p=pr=s; //初始化 指針 p pr 使pr p 指向 表達式
while(*p!='#'||optr.c[optr.len-1]!='#'){//當p指向的操作符 和optr 中的棧頂元素都為'#'時 操作結束
if(in(*p)) //如果p指向數字 則把 數字字元串轉化為實型(float)數據 並存入棧opnd中
{
m=0; k=0; tp=10;
while(in(*p)) p++; //使p指向下一個運算符
while(pr!=p)
{
if(*pr!='.') //如果pr指向小數點 則跳過
m=(m+*(pr++)-'0')*10; //將單個字數字元轉化為數據 並逐位求和
else{ //如 12.3 -> 1230
k=p-pr; pr++; }
}
for(i=0,tp=10;i<k;i++) //求出除數tp 使1230除以tp(100)等於 12.3
{
tp=tp*10;
if(i==k-1)
tp=tp/10;
}
pushs(&opnd,m/tp); //輸入棧opnd中
}
else switch(pre(optr.c[optr.len-1],*p)){
case'<':push(&optr,*p);p++;pr=p;break;
case'=':pop(&optr,&x);p++;pr=p;break;
case'>':pop(&optr,&t); pops(&opnd,&b); pops(&opnd,&a); //輸出一個操作符和兩個數據
pushs(&opnd,operate(a,t,b));break;} //運算
}
return opnd.d[opnd.len-1]; //返回表達式的值
}

③ C++編程 加減乘除編法

啥意思,直接加減乘除就好了啊,連重載運算符都不用,都是二目運算符,把變數傳進去計算就得出結果了啊。

④ 加減乘除的c語言編程怎麼寫

c語言的加減乘除可以這樣寫,假設有int變數a,b,c

加法:c=a+b

減法:c=a-b

乘法:c=a*b

除法:c=a/b

⑤ 如何利用c語言編出加減乘除的編程

這個加減乘除的功能有要求么,不需要彈出計算器一樣的吧?
#include<stdio.h>
void
main()
{
float
fValue1,fValue2;
char
cStr;
printf("請輸入兩個數值:\n");
scanf("%f",&fValue1);
scanf("%f",&fValue2);
printf("請輸入相關操作(+
-
*
/)");
getchar();

scanf("%c",&cStr);
switch(cStr)
{
case
'+':
{
printf("%.2f+%.2f
=
%.2f\n",fValue1,fValue2,fValue1+fValue2);
break;
}
case
'-':
{
printf("%.2f-%.2f
=
%.2f\n",fValue1,fValue2,fValue1-fValue2);
break;
}
case
'*':
{
printf("%.2f*%.2f
=
%.2f\n",fValue1,fValue2,fValue1*fValue2);
break;
}
case
'/':
{
printf("%.2f/%.2f
=
%.2f\n",fValue1,fValue2,fValue1/fValue2);
break;
}
default:printf("對不起!沒有相關操作運算~\n");
}
}

⑥ 加減號在c語言中怎麼表示,比如A加減B怎麼表示

作為編程語言,在運算時,一個表達式只可以有一個結果。

所以在任何的編程語言中,都不會支持±這個操作。

要實現A±B,只能分別計算A+B和A-B,並且分別將值保存在不同變數中。

如果該操作頻繁使用,可以將其封裝為函數。

如,計算a±b並存儲於參數數組c的函數可以寫作:

voidjiajian(inta,intb,intc[2])
{
c[0]=a+b;
c[1]=a-b;
}

這里的a,b,c的類型均設置為int,具體類型可以根據實際需要修改。

⑦ 數控車床編程時如何加減刀具的尺寸

假如你現在用1號刀(T0101)車外圓,直徑要求是100.0mm但車出來是100.1mm(大了0.1mm)那麼就要改刀補了
1.按 OFFSET/SETTING鍵
2.再按屏幕下方的形狀
3.游標移到1號刀的x方向
4.按-0.1
5.按屏幕下面的+輸入(帶了加號的那個輸入)
{減號輸入不要按}

⑧ C語言編程 100以內整數加減法

srand(time(0));
inta[20];
for(inti=0;i<20;i++)
{
a[i]=rand()%100;
}
for(inti=10;i<20;i+=2)
{
if(a[i]<a[i+1])
{
intt=a[i];a[i]=a[i+1];a[i+1]=t;
}
}
intscore=0;
for(inti=0;i<20;i+=2)
{
charc=i<10?'+':'-';
printf("%d%c%d=幾? ",a[i],c,a[i+1]);
intx;
scanf("%d",&x);
if((i<10&x=a[i]+a[i+1])|(i>=10&x=a[i]-a[i+1]))
{
score+=10;
cout<"回答正確"<<endl;
}
elsecout<"回答錯誤"<<endl;
}
switch(score)
{
case0:
case10:
case20:
case30:
case40:
case50:cout<<"要加油哦"<<endl;break;
case60:
case70:
case80:cout<<"真不錯哦"<<endl;break;
case90:cout<<"你真棒"<<endl;break;
case100:cout<<"酷斃了"<<endl;break;
default:;
}

⑨ 怎麼用C語言編寫一個隨機兩位數的加減法的程序

隨機生成50組數字(一組3個,2個用來計算,另一個用來湊加法或是減法)-->批量生成結果-->輸出算式-->獲取輸入結果-->給出得分

⑩ 如何C++編寫一個加減乘除計算機

#include <stdlib.h>
#include <iostream>
using namespace std;

void main()
{
int n=1;
do
{
char signe,test[20]={"\0"},str1[10]={"\0"},str2[10]={"\0"};
int num1,num2,i=0,j=0,k=0;
cout<<"輸入運算(如35+29): ";
cin>>test;

while(test[i])
{
str1[i++]=test[i];
if(test[i]=='+'||test[i]=='-'||test[i]=='*'||test[i]=='/')break;
}
signe = test[i++]; //取運算符號
while(test[i])
{
str2[j++]=test[i++];
}

num1 = atoi(str1);
num2 = atoi(str2);

if (signe=='+')cout<<num1<<" + "<<num2<<" = "<<num1+num2<<endl;
if (signe=='-')cout<<num1<<" - "<<num2<<" = "<<num1-num2<<endl;
if (signe=='*')cout<<num1<<" * "<<num2<<" = "<<num1*num2<<endl;
if (signe == '/')
{
if (num2 == 0)
{
cout<<"除數不能為0."<<endl;return;
}
cout<<num1<<" / "<<num2<<" = "<<num1*1.0/num2<<endl;
}
cout<<"輸入0---退出! 1---繼續運算."<<endl;
cin>>n;
}while(n);
}

熱點內容
ftp傳輸文件連接失敗 發布:2025-01-20 10:49:39 瀏覽:722
xp共享訪問不了 發布:2025-01-20 10:40:05 瀏覽:945
基恩士plc編程手冊 發布:2025-01-20 10:11:30 瀏覽:909
如何破譯小黃車密碼 發布:2025-01-20 10:07:39 瀏覽:434
電腦用什麼軟體可以模擬安卓應用 發布:2025-01-20 10:07:39 瀏覽:610
電腦乙太網連接伺服器通信 發布:2025-01-20 10:00:18 瀏覽:736
哪裡能看自然密碼 發布:2025-01-20 09:58:50 瀏覽:853
股票Al演算法 發布:2025-01-20 09:37:11 瀏覽:78
linuxrcu 發布:2025-01-20 09:30:50 瀏覽:468
mysqllinux路徑配置 發布:2025-01-20 09:28:26 瀏覽:40