我对你提出的问题的题意的理解是编一个计算器程序。。。。。。。。。如果要是那样子的话我给出代码:
#include
int main()
{
char cp;
int a, b;
scanf("%d %c %d", &a, &cp, &b);
if (cp == '-')printf("%d", a - b);
else if(cp == '+')printf("%d", a + b);
else if (cp == '*')printf("%d", a * b);
else if (cp == '%')printf("%d", a % b);
return 0;
}
如果要知道这几个符号在机器中的实现机理的话:
+和-不说了*就相当于多做几遍加法。而%是用位运算之类的方法进行运算的所以%的效率最低
不知道是不是你的编译器有问题我的程序运行起来是得15的
你是否正确输入了????
1):首先要知道语言的层次结构,通常会有直接使用“+”“-”“*”“%”语言都是高级语言。这些语言写的代码经过编译前端编译后生成中间代码,最后经过编译后端处理成目标代码,也就是在目标平台上可执行的二进制代码。
2):要知道计算机能执行的只是二进制的代码。无论是高级语言表达式,如(1+2),还是汇编语言,add r1,r2,r3. 都要翻译成目标平台的二进制代码。
如果你学过微型计算机原理,应该知道一个汇编指令,最终要执行还得用处理器的微指令来表达。
3):最后这些微指令转化成电信号,控制处理器内的众多的与或非门,来实现你想要做的运算。
有些小麻烦 但是一定能算出
#include
int main()
int a,b,c,d;
int add(int a,int b);
int jian(int a,int b);
int cheng(int a,int b);
int chu(int a,int b);
int (*p)(int a,int b);
printf("please enter 1or2or3or4");
printf("\n");
scanf("%d",&d);
if(d==1)
p=add;
if(d==2)
p=jian;
if(d==3)
p=cheng;
if(d==4)
p=chu;
printf("please enter a and b");
printf("\n");
scanf("%d,%d",&a,&b);
c=(*p)(a,b);
printf("%d",c);
return 0;
}
int add(int a,int b)
{
int c;
c=a+b;
return (c);
}
int jian(int a,int b)
{
int c;
c=a-b;
return (c);
}
int cheng(int a,int b)
{
int c;
c=a*b;
return(c);
}
int chu(int a,int b)
{
int c;
if(b==0)
return(0);
else c=a/b;
return (c);
}
很简单
#include
main()
{
int a=10;
a=a - a * a + a % a;
printf("%d",a);
}