#include stdio.h#include stdlib.h#include string.hvoid resolve(char *p);void del(int n);void find(char *p);int last();char s[80];int num[80];char sign[80]; /*此程序所有数组为全局变量*/int main(){ int n=1; while(n==1) { printf("Enter:\n"); scanf("%s",s); resolve(s); find(sign); /*寻找乘号和除号*/ printf("result= %d\n\n",last()); printf("please Enter:\n1:continue 2:exit\n\n "); scanf("%d",n); }
成都创新互联公司是一家专注于网站设计、网站建设与策划设计,桐庐网站建设哪家好?成都创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:桐庐等地区。桐庐做网站价格咨询:18980820575
return 0;}
void resolve(char *p) /*数字放在NUM中,符号放在SIGN中*/{ int n=0,k=0; while(*p!='\0') { if(*p='0'*p='9') n=n*10+(*p-'0'); else {
num[k]=n; n=0; sign[k++]=*p; } p++; } num[k]=n;
}
void find(char *p) { int i,n; for(i=0;*p;i++) { if(*p=='*'||*p=='/') { n=(*p=='*' ? num[i]*num[i+1] : num[i]/num[i+1]); num[i]=n; del(i); /*删除其中的乘除号和已经运算过的数字*/ i--; } else p++;
} }
void del(int n){ int i; for(i=n;istrlen(sign);i++) { sign[i]=sign[i+1]; num[i+1]=num[i+2]; }
}
int last(){ int i,sum; sum=(sign[0]=='+' ? num[0]+num[1] : num[0]-num[1]); for(i=1;sign[i];i++) sum=(sign[i]=='+' ? sum+num[i+1] : sum-num[i+1]); return sum;
}
刚出炉的 没有实现其中的括号功能 也只能处理整数
1、打开CodeBlocks,新建一个空白文件,先定义头文件和主函数,接着写程序多大的主体:
2、首先定义所需要的变量,将变量定义为浮点型,定义输入函数,将刚才的x和y定义为计算的变量,将c定义为选择计算方式的变量。用switch语句,将c作为选择变量,填写计算方式的选项,最后在主函数中输入一个输出函数来输出计算式及结果即可完成程序的编写:
3、运行编译查询,输入一个除法的计算验证一下,发现程序输出了小数,说明程序运行正常。以上就是用C语言编写计算器的流程:
一、//调用函数事例
#includestdio.h
#includestring.h
二、//计算加法函数
int add(int a, int b)
{
return a+b;
}
三、//计算减法函数
int subtract(int a, int b)
{
return a-b;
}
四、//计算乘法函数
int multiply(int a, int b)
{
return a*b;
}
扩展资料:
函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。例如: printf("%d",max(x,y)); 即是把max调用的返回值又作为printf函数的实参来使用的。在函数调用中还应该注意的一个问题是求值顺序的问题。
参考资料来源:百度百科-函数调用
#includestdio.h
void main()
{
int a(int x,int y);int b(int x,int y);
int c(int x,int y);float d(float x,float y);
int x,y;
scanf("%d,%d",x,y);
printf("x=%d,y=%d.\nx+y=%d.\nx-y=%d.\nx*y=%d.\nx/y=%f.\n",x,y,a(x,y),b(x,y),c(x,y),d(x,y));
}
int a(int x,int y)
{
return(x+y);
}
int b(int x,int y)
{
return(x-y);
}
int c(int x,int y)
{
return(x*y);
}
float d(float x,float y)//注意算除法的时候形参定义为float型的,否则x/y会自动取整
{
return(x/y);
}
#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;
}