计算器编程 C语言 高手帮忙啊!!

来源:百度知道 编辑:UC知道 时间:2024/05/13 02:21:41
限用switch语句,看下我的答案怎么不对呢?在算除法时老出错.....
#include<stdio.h>
void main()
{
long a,b,r;
char c;
scanf("%d%c%d",&a,&c,&b);
switch(c)
{
case '+': r=a+b;break;
case '-': r=a-b;break;
case '*': r=a*b;break;
case '/': if(b!=0)
r=a/b;
else
printf("error");break;
default:printf("error");
}
printf("=%d",r);
}

高手给改一下吧...turb C环境

#include<stdio.h>
int main()
{
long a,b,r;
char c;
scanf("%ld%c%ld",&a,&c,&b);
switch(c)
{
case '+': r=a+b;break;
case '-': r=a-b;break;
case '*': r=a*b;break;
case '/': if(b!=0) r=a/b;
else printf("error");break;
default:printf("error");
}
printf("=%ld",r);
return 0;
}
你定义的类型和输出的方式不匹配``
改了之后在我的机子上试过了``
你自己再试试``

既然是long 就不要用整形%d输入输出了阿

没有错阿,只是除0的时候也把r打印了而已,这时候r没有被初始化,是个随机值,没有别的问题。请问你是怎么输入的?

不知你说的老出错是出的什么错,首先,我的理解是,你既然定的是LONG型,那肯定答案只能是整数型,这是一点,还有就是,输入和输出问题,应该是%ld,不是%d,所以也会产生错误