我是大一新生,刚学c语言。谁能帮我写一个能运行两个数加减乘除的程序?我们书上说整数除整数最后也是整

我是大一新生,刚学c语言。谁能帮我写一个能运行两个数加减乘除的程序?我们书上说整数除整数最后也是整数。我希望这个程序可以做到让整数除整数即使除不开也能得出小数。谁能帮我这一个两个数的计算器?感激不尽!!

#include<stdio.h>

int main()

{

int i,j,d;

char c;

    scanf("%d%c%d",&i,&c,&j);

    switch(c)

{

case '+':

d=i+j;break;

case '-':

d=i-j;break;

case '*':

d=i*j;break;

case '/':

if(j!=0)d=i/j;

else

{

printf("Can not divided by 0!\n");

return 1;

}

}

printf("%d%c%d=%d\n",i,c,j,d);

system("pause");

return 0;

}

追问

这个能算5除以2得2.5吗?

追答

5/2在上面的程序中是等于2的。
你们都是说的是对的。
如要它等于2.5,应该使用一个float型的变量。
float x;
x=(float)i/j;
printf("%d%c%d=%f\n",i,c,j,x);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-08
    int a=0;
    int b=0;
    printf("请输入被除数:");
    scanf("%d",&a);
    printf("请输入除数:");
    scanf("%d",&b);
    
    float result = (float)a/(float)b;
    
    printf("%d/%d=%0.2f\n",a,b,result);

 整数相除,结果要显示小数,所以结果的类型必须为float行,所以在除之前需要先将2个整数都转换成float型,真阳结果就是float,最后,结果需要显示几位,可以用printf来控制,%0.2f表示显示小数后边2位数。

第2个回答  2015-10-08
float calc(float a, float b, char op)
{
switch (op){
case '+': return a + b;
case '-': return a - b;
case '*': return a * b;
case '/': if (b) return a / b;
default: return 0;
}
}
int main()
{
char op;
int  a, b;
while (1)
{
float res;
scanf("%d%[+-*/]%d", &a, &op, &b);
res = calc((float)a, (float)b, op);
if (res == (int) res)
printf("%d%c%d=%d\n", a, op, b, (int)res);
else
printf("%d%c%d=%f\n", a, op, b,  res);
}
return 0;
}

追问

漂亮,要的就是向您这样能自动识别加减乘除而不是手动的程序!

这个能算5除以2得2.5吗?

第3个回答  2015-10-08
float a,b,c;scanf("%f%f",&a,&b);c=a*b;printf("%d",c);
第4个回答  2015-10-08
计算时,把除数强制转换成float,结果存储在float变量追问

您好,可以看一下2楼那个回答吗?他那个程序如何做到两整数相除出小数?

相似回答