首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

达不到预期的结果,该怎么处理

2013-01-08 
达不到预期的结果先看代码:#includeiostream#includestring#includestdio.husing namespace stdvoi

达不到预期的结果
先看代码:

#include<iostream>
#include<string>
#include<stdio.h>

using namespace std;

void main(){

   int s1, s2;
   float s3;
   char f;

   scanf("%d%c%d",&s1,&f,&s2);

   if (f == '+'){
   s3 = s1 + s2;
   }
   else if(f == '-'){
   s3 = s1 - s2;
   }
   else if(f == '*'){
   s3 = s1 * s2;
   }
   else if(f == '/'){
   s3 = s1 / s2;
   }

   printf("%d%c%d=%d",s1,f,s2,s3);
}


我输入5/3后,得出的数尽然是0!
[解决办法]
在表达式前加上(double)
像这样s3 = (double)s1 / s2
输出格式改成像1楼这样printf("%d%c%d=%.2lf",s1,f,s2,s3);
[解决办法]
int/int 结果是int ;float/int 结果就是float了
[解决办法]
是你最终输出的类型有问题,你的变量是float类型的,结果却按照Int型的来输出了

热点排行