橄榄核简单雕刻图案:c语言中一些小问题!谢谢

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 11:14:07
有两个程序,很简单,但我就是不明白其中是为什么
第一个是
main()
{float x,y;
x=5;
y=3;
printf("x=%d y=%d\n",x,y);
}
答案是x=0,y=0我觉得虽然x,y是单精度,但在所求时会根据要求将它们转化成整型,应该照原样输出吧?float向int转化应该是允许的呀!
第二个是
main()
{int x,y;
x=5;
y=3;
printf("x=%f y=%f\n",x,y);
}
答案是运行时出错,但我觉得int向float转的时候不就是在小数点后加零吗,怎么会编译出错呢!
这是第二个程序运行后的结果:printf:floating point formats
not linked
abnormal program termination
我用的是tc2.0,运行过这些程序了

换个编绎器吧~像TC2这样的,可能不是32位的编绎器。
另外,感觉你的TC2少东西,装的时候可能有问题~
建议用VC编绎器,C是C++的子集,在VC编绎器上跑C程序,一点问题没有,而且界面看起来干净,不用TC那个鼠标都不支持。

应该可以的,你换个TC试试

答案靠不住,上机才行

高位转地位是截断 就说float型把,占32位,
5在内存中表示为0000 0000 0000 0000 0000 0000 0000 0101 转为int型就直接取最后16位,所以应该为5,而地位转高位是在数字前面补零,如int型的5,内存中为 0000 0000 0000 0101,变成float型就是0000 0000 0000 0000 0000 0000 0000 0101,直接在原来的数字前面加零,还是为5,所以应该可以运行

这种程序在不同的编译环境下结果都不同,楼主还是不要深究的好。

教科书上说,用printf()函数时,格式说明字符与其对应的输出项的类型要保持一致,不然TC会出错。
我用的也是TC2.0,上机后运行和你出现一模一样的结果。

其原因可能是TC内部的编译方法所造成的。