同样的情况还有如下,更奇怪了:
#include<stdio.h>
void main()
{ int i,j;
for(;i*j<0;) { printf("enter i,j:");scanf("%d,%d",&i,&j); }
printf("%d",i*j); }
程序意思是输入i,j的值必须同号,否则重新输入,然后输出i*j的值。
这里循环条件i*j<0时可以实现,而循环条件换做i*j>0时(要求i,j必须异号),编译正常,但执行得不到需要的效果。
而如果将整型定义int改成float型,则i*j>0时可实现,i*j<0时就不行。
gcc编译。
这是为何?有大神知道吗?求讨论!!!