c語言進行四則運算
1. c語言編四則運算器程序
分類: 電腦/網沒賣絡 >> 程序設計 >> 其他編程語言
問題描述:
功能為;首先有一個界面問"請輸入你想進行運算的對象個數」
這個數在一至5之間
然後出來界面讓輸入算術式
然後輸入結果
然後有計算機判斷對錯散察帆
解析:
哈哈,剛好,我也在學C語言,碰巧,這幾天也正在思考編寫計算器的問題.網上應該能找到經典的C程序計算器,這個是我獨立寫出來的.
我只學到數組這里.所以沒用到堆棧,指針之類的.主要用數組,循環與函數調用實現.完全是入門級.
支持四則運算和指數運算(用h符)。
數據類型為float型。
算術式最大長度可以通過修改程序中的數組長度和「I」值更該,沒有具體規定,使用時要注意運算結果的溢出問題。
對錯誤的算沖雹術式有一定的檢查功能。
程序代碼如下:
#include<math.h>
float sss(float d[],char e[],int I)
{int i,n;
for(i=0;i<=I;n=++i)
{if(e[i]==0)
{printf("The answer is:-->: %f\n",d[i]);i=I;}
else
{if(e[i]-e[i+1]>-5)
{switch(e[i])
{case 80: d[i+1]=d[i]+d[i+1];break;
case 81: d[i+1]=d[i]-d[i+1];break;
case 90: d[i+1]=d[i]*d[i+1];break;
case 91: d[i+1]=d[i]/d[i+1];break;
case 100: d[i+1]=pow(d[i],d[i+1]);break;
default :printf("Sorry! Some Error unknow...");break;}
for(n=i;i<=I;i++)
{d[i]=d[i+1],e[i]=e[i+1];
if(e[i]==0) i=I;}
if(n==0) i=n-1;
else i=n-2;}}}}
main()
{float d[32];
char e[32];
int i,I=31,n;
printf("\n\n");
for(i=0;i<=I;i++)
{scanf("%f%c",&d[i],&e[i]);
switch(e[i])
{case '+': e[i]=80;break;
case '-': e[i]=81;break;
case '*': e[i]=90;break;
case '/': e[i]=91;break;
case 'h': e[i]=100;break;
case '=': e[i]=0,i=I;break;
default: printf("Oper %d is Error! --->- %c -ChangeTo:one of + - * / h =\n",i+1,e[i]);}}
printf("\n");
sss(d,e,I);}
直接從我的.c文件里復制出來的.
使用時輸入格式例如:123*456-789/369+852h2-741= 然後回車.
852h2表示852的2次方.記得以等號結束.不支持括弧(正在努力).
在這支持的32次運算(包括等號).
2. c語言用switch編寫一個簡單的四則運算程序
代碼如下:
#include <stdio.h>
int main()
{
float fFloat1=.0,fFloat2=.0;
char cOP=NULL;
printf("請輸入要進行四則運算表達式: ");
scanf("%f%c%f",&fFloat1,&cOP,&fFloat2);
switch(cOP)
{
case '+':
printf("%f+%f=%f ",fFloat1,fFloat2,fFloat1+fFloat2);
break;
case '-':
printf("%f-%f=%f ",fFloat1,fFloat2,fFloat1-fFloat2);
break;
case '*':
printf("%f*%f=%f ",fFloat1,fFloat2,fFloat1*fFloat2);
尺鉛埋 break;
case '/':
if(0!=fFloat2)
{
陵螞 printf("%f/%f=%f ",fFloat1,fFloat2,fFloat1/fFloat2);
}
else
{
printf("error! ");
}
break;
default:
printf("error! ");
break;
}
return 0;
}
(2)c語言進行四則運算擴展閱讀
switch語句和if語句的區別:
1、大於等於(>=)、小於等於(<=)的判斷用if語句,而等於(=)的判斷用switch語句。
2、switch語句中的case類似於if…else…else if…else,但是離散值激漏的判斷。(離散值的判斷自認為是等於情況的判斷)。
3、switch一般都可以及用if重寫,但是if不一定能用switch重寫。
4、不要忘了break.C#中break不寫是不行的,除了合並case的情況。
5、case中的值必須是常量,不能是變數、表達式。
3. c語言編寫 編寫一個簡單的計算器,實現兩個整型數的四則運算。
1、打開CodeBlocks,新建一個空白文件,先定義頭文件和主函數,接著寫程序多大的主體:
4. 四則運算用c語言怎麼搞
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define ADD1 sizeof(kuohao)
#define ADD2 50
typedef struct kuohao{char a;struct kuohao *pre;}kuohao;
char *creat()
{
char *a;
a=(char*)malloc(ADD2*sizeof(char));
gets(a);
return a;
}
int judgekuohao(char *a)
{
kuohao *top,*tail,*t;
top=tail=(kuohao*)malloc(ADD1);
while(*a!='\0')
{
if(*a=='(')
{
t=top;
top=(kuohao*)malloc(ADD1);
t->a='(';
top->pre=t;
}
else if(*a==')')
{
if(top==tail)
return -1;
else
{
t=top;
top=top->pre;
free(t);
}
}
a++;
}
if(top==tail)
return 1;
else return -1;
}
char precede(char a,char b)
{
int i,j;
char compare[8][8]={' ','+','-','*','/','(',')','\0',
'+','>','>','<','<','<','>','>',
'-','>','>','<','<','<','>','>',
'*','>','>','>','>','<','>','>',
'/','>','>','>','>','<','>','>',
'(','<','<','<','<','<','=',' ',
')','>','>','>','>',' ','>','>',
'\0','<','<','<','<','<',' ','='};
for(i=0;i<8;i++)
if(compare[0][i]==a)
break;
for(j=0;j<8;j++)
if(compare[j][0]==b)
break;
return compare[j][i];
}
void run(char *a)
{
int b[50]={0},count;char c[50],t;
int i=0,j=0;char *d;c[0]='\0';
while(*a!='\0'||c[j]!='\0')
{
count=0;
if(*a<='9'&&*a>='0')
{
d=a;
while(*d<='9'&&*d>='0')
{
d++;
count++;
}
while(count>0)
{
b[i]+=(int)((*a-'0')*pow(10,count-1));
count--;
a++;
}
i++;
}
else
{
switch(precede(*a,c[j]))
{
case'<':
j++;c[j]=*a;a++;break;
case'=':
j--;a++;break;
case'>':
t=c[j];
j--;i--;
if(t=='-')
{
b[i-1]=b[i-1]-b[i];
b[i]=0;
}
else if(t=='+')
{
b[i-1]=b[i-1]+b[i];
b[i]=0;
}
else if(t=='*')
{
b[i-1]=b[i-1]*b[i];
b[i]=0;
}
else if(t=='/')
{
b[i-1]=b[i-1]/b[i];
b[i]=0;
}
else break;
}
}
}
printf("%d\n",b[i-1]);
}
void main()
{
int i,n,s;
char *a[10],*t;
scanf("%d",&n);
for(i=0;i<=n;i++)
a[i]=creat();
for(i=1;i<=n;i++)
{
t=a[i];
s=judgekuohao(t);
if(s==-1)
{
printf("False\n");
continue;
}
else
run(a[i]);
}
} 輸入: 第一行輸入要計算的算術表達式的個數n 後緊跟n行算術表達式
5. 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);
}
6. C語言怎麼實現任意兩個數的四則運算
C語言實現任意兩個數的四則運算的方法:
1、閱讀代碼,使用了隨機函數:srand(unsigned( time(NULL)));通過調用隨機函數,將生成的100以內的隨機整數賦給不同的變數,一部分用於四則運算式數據的來源,而賦給變數c的隨機數則用於結合switch語句控製程序跳轉執行 不同的分支,即不同的四則運算,如下:
c = rand() % 5; //隨機產生小於5的非負整數
switch (c)
case 0:
case 1:
...........
case 5:
2、使用while語句控制除數不為0
while (b == 0)
{
b = rand() % 1; //若b=0則重新生成b,直到b不為0
}
3、使用if語句判斷減數與被減數的大小。
if (a > b) //使a<b
{
d = a;
a = b;
b = d;
}
if (m > n) //使m<n
{
d = m;
m = n;
n = d;
}
通過if判斷並賦值的手段保證結果不出現負數
4、 原代碼僅能一次性生成20個隨機的四則運算式,而無法從鍵盤輸入結果並判斷答案正確與否。
5、修改代碼。由於原代碼無法從鍵盤讀入數據,所以對其進行了改進。
(1)增加鍵盤讀入功能
scanf("%d",&x);
從鍵盤讀入輸入的答案
(2)對答案進行正確與否的判斷
if(x == (a+b))
printf("You are right! ");
else
printf("You are wrong! ");
通過比較輸入答案與運算得出的答案告知用戶計算是否正確。
6、上傳源代碼至GitHub。