#include<stdio.h>
int main( void )
{
char c='A';
double x=1e+33,y=0.001;
printf("%d\n",1!=!!c==!!c);
printf("%d\n",x+y>x-y);
system("pause");
}
请给出答案,并请解释.谢谢
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <stdlib.h> /* 包含 stdtem() */
int main( void )
{
char c='A';
double x = 1e1 + 33, y = 0.001; /* 1e 是错误的,1e1 即1 *(10的1次方)*/
printf("%d\n",1!=!!c==!!c); /* (1 != !!c) == !!c // 这个错了吧 */
/* 这个要表达什么意思啊? */
printf("%d\n",x+y > x-y);
system("pause");
return 0; /* 还是加上比较好 */
}
/* 1e 无法通过编译! 1e 是无效的! */
/* 失误是“1e+33” 啊 */
[此贴子已经被作者于2007-11-7 13:02:55编辑过]
----------------解决方案--------------------------------------------------------
无聊问题,看一下运算符优先级表不就行了
----------------解决方案--------------------------------------------------------
2楼,程序无误.1e有效.
[QUOTE]printf("%d\n",1!=!!c==!!c); /* (1 != !!c) == !!c // 这个错了吧 */
/* 这个要表达什么意思啊? */
printf("%d\n",x+y > x-y);[/QUOTE]
我想知道的就是这样的表达式应该怎么解释.
谢谢
----------------解决方案--------------------------------------------------------
printf("%d\n",1!=!!c==!!c);
1 != !!C 就是 1 != C`结果是 1
1 == !!C 就是 1 == C 结果是 0
到底是什么实际意思``我不太明白`` 要知道``关系表达试的结果永远是0或1``
C不是0也不是1```这个结果就永远是0``因为0和1都!=C
printf("%d\n",x+y>x-y); 结果是1``X,Y为正数``X+Y肯定>X-Y```
[此贴子已经被作者于2007-11-7 10:26:31编辑过]
----------------解决方案--------------------------------------------------------
我的逻辑是这样子的.
!c为0;
!!c应该为!0,也就是结构为1.那么1!=1 结果为0;
另外,在我的机器上(编译器turbo c),printf("%d\n",x+y>x-y); 结果为0;
----------------解决方案--------------------------------------------------------
[QUOTE]
我的逻辑是这样子的.
!c为0;
!!c应该为!0,也就是结构为1.那么1!=1 结果为0;
另外,在我的机器上(编译器turbo c),printf("%d\n",x+y>x-y); 结果为0;
不好意思,出现错别字.
应该是
我的逻辑是这样子的.
!c为0;
!!c应该为!0,也就是结果为1.那么1!=1 结果为0;
另外,在我的机器上(编译器turbo c),printf("%d\n",x+y>x-y); 结果为0;
----------------解决方案--------------------------------------------------------