
求C++高手帮忙解决小弟问题
#include<stdio.h>#include<stdlib.h>intmain(){inti;floata,b,f;floatd;charc,e;scanf("%f...
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
float a,b,f;
float d;
char c,e;
scanf("%f%c%f",&a,&c,&b);
switch(c)
{
case'+':d=a*1.0+b*1.0;break;
case'-':d=a*1.0-b*1.0;break;
case'*':d=a*1.0*b*1.0;break;
case'/':if(b==0)printf("b can't be 0\n");
else if(b!=0)d=a*1.0/b*1.0;break;
default:printf("worning\n");break;
}
printf("%0.2lf\n",d);
for(i=1;i<1000;i++)
{
scanf("%c%f",&e,&f);
switch(e)
{
case'+':d=d+f;break;
case'-':d=d-f;break;
case'*':d=d*f;break;
case'/':if(f==0)printf("f can't be 0\n");
else if(f!=0)d=d/f;break;
default:printf("worning\n");system("pause");return 0;break;
}
printf("%0.2lf\n",d);
}
return 0;
}
如上 第一次输入可以正常显示出正确结果 第二次输入提示worning
求大神解释一下 谢谢 展开
#include<stdlib.h>
int main()
{
int i;
float a,b,f;
float d;
char c,e;
scanf("%f%c%f",&a,&c,&b);
switch(c)
{
case'+':d=a*1.0+b*1.0;break;
case'-':d=a*1.0-b*1.0;break;
case'*':d=a*1.0*b*1.0;break;
case'/':if(b==0)printf("b can't be 0\n");
else if(b!=0)d=a*1.0/b*1.0;break;
default:printf("worning\n");break;
}
printf("%0.2lf\n",d);
for(i=1;i<1000;i++)
{
scanf("%c%f",&e,&f);
switch(e)
{
case'+':d=d+f;break;
case'-':d=d-f;break;
case'*':d=d*f;break;
case'/':if(f==0)printf("f can't be 0\n");
else if(f!=0)d=d/f;break;
default:printf("worning\n");system("pause");return 0;break;
}
printf("%0.2lf\n",d);
}
return 0;
}
如上 第一次输入可以正常显示出正确结果 第二次输入提示worning
求大神解释一下 谢谢 展开
1个回答
展开全部
在for循环上面加个getchar(),第一次计算完成后,按了一下回车,回车也算一个字符,会把值传给e。

2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询