|
发表于 2015-5-5 13:28:16
|
显示全部楼层
本帖最后由 tianzhiya 于 2015-5-5 13:29 编辑
这是vc6.0的bug, 用vs就不会。(具体原因不明,因为我也不是大神),给其中一个浮点数赋予初始值就可以了。
#include <stdio.h>
void main()
{
float a = 0, b;
char c;
//scanf("%.f", &a);
//scanf("%c", &c);
//scanf("%f", &b);
scanf("%f%c%f", &a, &c, &b);
switch(c)
{
case'+':
printf("1");
break;
case'-':
printf("2");
break;
case'*':
printf("3");
break;
case'/':
printf("4");
break;
default: printf("5");
}
}
这是vc6.0对浮点数的处理有问题,下面的代码也会这样:
#include <stdio.h>
void main()
{
float a;
scanf("%f", &a);
}
而且必须是没有运行过浮点数有赋予初始值的才会出现错误:
也就是运行过:
//代码1
#include <stdio.h>
void main()
{
float a = 1;
scanf("%f", &a);
}
在运行:
//代码2
#include <stdio.h>
void main()
{
float a;
scanf("%f", &a);
}//
就不会出错
为毛?我也不知道:cry
详情:
http://blog.163.com/tab_98/blog/static/119240972012102404641288/
|
评分
-
查看全部评分
|