㈠ c語言四則運算
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int n,n1;
char fun(int op){if(op==0)return '+';else if(op==1)return '*';else if(op==2)return '-';else return '/';}
int Compute( int a, int b, int op )
{
int p;
if(op==0)p=a+b;else if(op==1)p=a*b;else if(op==2)p=a-b;else p=a/b;
if(n==p){n1++;
return 1;}
else
return 0;
}
void Print(int flag)
{
if(flag==1)printf("Right!\n");
else
printf("Not correct!\n");
}
void main()
{
srand((unsigned)time(NULL));
int a,b,op,i=0,num;
while(true)
{
if(i==10)break;
a=rand()%10+1;
b=rand()%10+1;
op=rand()%4;
if(a%b==0&&a>=b)
{
i++;
printf("%d%c%d=",a,fun(op),b);
scanf("%d",&n);
num=Compute(a,b,op);
Print(num);
}
}
printf("you grade is:%d,you falsed %d!\n",n1*10,10-n1);
}
㈡ 用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語言實現四則運算,詳細思路很重要啊(越詳細越好~),可以木有代碼(急)
1.判斷四則運算字元串的括弧是否匹配,可以用以個棧來計算,開始棧是空,從頭遍歷所有字元,找到'(',壓棧,找到')'彈出一個元素,遍歷完成以後如果棧是空表示正常,非空,或則中間出現問題都表示括弧不正常。
2.分解四則運算中的所有元素,把所有分解的元素放在隊列中,遍歷整個字元串,有switch分支,如果是0-9的字元用一個字元串存儲並和前面的字元組合起來,如果是'+''-''*''/'就把前面存儲數字的字元串當成一個元素放進隊列,並把當前運演算法符當成一個元素也放進隊列,遍歷完成以後所有的數據和運算符都分開了,比如234+456,會分解成234,+,456三個元素。
3.然後分解隊列,用兩個棧,一個存放所有元素用A表示,一個存放運算符號用B表示(這個是臨時變數),從頭開始遍歷整個隊列,如果是數據就把數據壓到A棧。如果元素是運算符就分開處理,如果是'(''+''-''*''/'')'處理方法都不一樣,詳細說明太復雜,整體的思想就是把數據和運算符的順序排列好(上面的元素排列以後變成234,456,+;可以參考後序排列)。
4.計算:依次彈出A中的元素,如果是數據把數據壓在棧C中,如果是運算符,從C中彈出該運算符需要的數據,然後把計算結果再次壓進棧C,當A遍歷完以後,C頂元素就是計算結果。
整個大題思路:1.檢查,2.分解,3.中序排列,4.後序排列,5.計算
㈣ C語言中的分數四則運算
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void operation()
{
int a,b,c,d;
int x,y;
int i,j,t;
char ch;
printf("-------歡迎進入分數四則運算的操作界面-------\n\n");
printf("請輸入第一個分數的分子:");
scanf("%d",&b);
printf("請輸入第一個分數的分母: ");
scanf("%d",&a);
if(!a)
{
printf("Error,分母不能為0!\n");
exit(0);
}
printf("請輸入第二個分數的分子:");
scanf("%d",&d);
printf("請輸入第二個分數的分母:");
scanf("%d",&c);
if(!c)
{
printf("Error,分母不能為0!\n");
exit(0);
}
getchar();
printf("請輸入運算符號[ + - * / ]: ");
scanf("%c",&ch);
switch(ch)
{
case'+': x=a*c; y=b*c+a*d; break;
case'-': x=a*c; y=b*c-a*d; break;
case'*': x=a*c; y=b*d; break;
case'/': x=a*d; y=b*c; break;
default: printf("Error,不存在該運算符號!\n"); exit(0);
}
printf("通分後的分母是%d,分子是%d\n",x,y);
x>=y?(i=x,j=y):(i=y,j=x);
/*輾轉相除法(歐幾里德演算法)*/
t=i%j;
while(t)
{
i=j;
j=t;
t=i%j;
}
/*更相減損術 */
/*t=i-j;
while(t)
{
i=j;
j=t;
t=abs(i-j);
if(t==j)
break;
}*/
if(y/x>=0)
{
x/=j;
y/=j;
}
else
{
x=abs(x/j);
y=-abs(y/j);
}
printf("運算結果如下:\n");
if(y%x==0)
printf("%d/%d %c %d/%d = %d\n",b,a,ch,d,c,y/x);
else
printf("%d/%d %c %d/%d =%d/%d\n",b,a,ch,d,c,y,x);
}
void main()
{
operation();
}
//轉載於微信公眾號:會說話的青鳥,這上面有詳細的講解,沒看懂可以去那參考一下哦
㈤ c語言編寫 編寫一個簡單的計算器,實現兩個整型數的四則運算。
#include<stdio.h>
int main()
{int a,b,c,err;
char op;
do
{scanf("%d%c%d",&a,&op,&b);
err=0;
if(a==0&&b==0)break;
if(op=='+')c=a+b;
if(op=='-')c=a-b;
if(op=='*')c=a*b;
if(op=='/')
if(b)c=a/b;else err=1;
if(op=='%')
if(b)c=a%b;else err=1;
if(err)printf("%d%c%d error! ",a,b,c);
else printf("%d%c%d=%d ",a,op,b,c);
}while(1);
return 0;
}
㈥ C語言編寫四則運算
請先給出明確答復:因為程序規定的是先輸入操作符,再輸入兩個操作數
解釋原因:請看下面部分的代碼
- 第一個scanf("%c",&oper);這一句要求輸入一個(注意是一個)字元格式的值,給oper;
如果你輸入一個數字、英文等等,假如你第一個輸入的是10,那oper就是1,而不是10,因為%c一次只能讀取一個字元;
接下來,輸入第二第三個,程序再往下就會拿oper判斷,如果oper等於-號,就會執行減法,如果等於+號就會執行加法;
所以你輸入的操作數是不會匹配任何運算符,就不能進行運算。
有無解決辦法:
調換語句順序:復制第一個printf那一行與第一個scanf那一行,注意這兩行printf在scanf的上面,把這兩句放到第二個scanf之後,第三個print之前。就能輸入 1 空格 + 空格 2 回車,這種的
㈦ 用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語言編寫四則運算,急呀!越簡單越好
用純粹的C語言實現,代碼如下:
#include<stdio.h>
intmain()
{
doublea,b;
scanf("%lf%lf",&a,&b);
printf("a+b=%lf,a-b=%lf,a*b=%lf",a+b,a-b,a*b);
if(b==0)
printf(",error! ");
else
printf(",a/b=%lf ",a/b);
return0;
}