失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 关于c基础实现简易计算器的代码(加减乘除)

关于c基础实现简易计算器的代码(加减乘除)

时间:2023-12-15 23:31:45

相关推荐

关于c基础实现简易计算器的代码(加减乘除)

输入为数字和算术符号组成的字符串,程序会根据运算级处理后输出结果,这是前段时间写的了,没有添加输入字母报错功能,当时我认为计算器上一般也没有字母按键,所以就没有写,但是现在想想计算器和这个代码实现的原理可能又不太一样,如果有借鉴者,自行加上就可以了。

运行时会报一个gets的警告,这个不用管,因为我还没学fgets

calc.c: In function ‘main’:calc.c:35:2: warning: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Wimplicit-function-declaration]gets(Input);^~~~fgets/tmp/ccGSFET8.o:在函数‘main’中:calc.c:(.text+0x17c): 警告: the `gets' function is dangerous and should not be used.

运行结果如下

9+12*3-10/2+646.00

代码如下

#include <stdio.h>#include <stdlib.h>//atoi#include <string.h>float S(float x,float y,char z){float num_temp=0;if(z=='*'){num_temp=x*y;}if(z=='/'){num_temp=x/y;}return num_temp;}float SS(float x,float y,char z,char zz){float num_temp2=0;if(zz==' '){return 0;}if(z=='+'){num_temp2=x+y;}if(z=='-'){num_temp2=x-y;}return num_temp2;}int main(int argc, const char *argv[]){char Input[100]={0},Inchar[100]={0};float Innum[100]={0},num_1=0,num_2=0;int i=0,j=0;float num_temp1=0;char *p=Input;gets(Input);while(*p!=0){num_2=0;while(*p>='0'&&*p<='9'){num_1=*p-'0';num_2=num_1+num_2*10;p++;}Innum[i]=num_2;Inchar[i]=*p;i++;p++;}for(i=0;i<100;i++){if(Innum[i]==0){break;}num_temp1=S(Innum[i],Innum[i+1],Inchar[i]);if(num_temp1!=0){Innum[i+1]=num_temp1;Inchar[i]=' ';}}for(i=1;i<100;i++){if(Innum[i]==0){break;}num_temp1=SS(Innum[j],Innum[i],Inchar[j],Inchar[i]);if(num_temp1!=0){Innum[i]=num_temp1;j=i;}}printf("%.2f\n",num_temp1);return 0;}

如果觉得《关于c基础实现简易计算器的代码(加减乘除)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。