xwmllbd 发表于 2015-1-8 21:35:12

关于3/2,求各位高人解释!

情况1:intx = 3, y = 2, z;          z = x / y;
          printf("%d,%f,%d\n", x, y, z);

无错误可编译,但是运行会报错!

情况2:intx = 3, y = 2, z;
          z = x / y;
          printf("%d,%d,%d\n", x, y, z);
一切正常!

情况3:floatx = 3, y = 2, z;
          z = x / y;
          printf("%d,%d,%d\n", x, y, z);
无错误可编译,可运行但是结果错误!

情况4:floatx = 3, y = 2, z;
          z = x / y;
          printf("%f,%d,%d\n", x, y, z);
无错误可编译,可运行结果依然错误!


xwmllbd 发表于 2015-1-10 18:09:42

没有人啊,自己顶一下!

~风介~ 发表于 2015-1-10 22:40:47

没报错啊!不过我还是改了一点点东西,看起来美观一点!#include <stdio.h>

int main (int argc, char *argv[])
{
        floatx = 3, y = 2, z;
        z = x / y;
      printf("%f,%f,%f\n", x, y, z);

        return 0;
}



xwmllbd 发表于 2015-1-11 17:59:12

      版主好,多谢回复我的问题啊,照你写的程序运行了确实不错,结果也是对的,这种情况我也试过,只要是定义数据和打印数据时数据类型一样的话,结果就是对的,其他情况都是无错误可编译,但是结果都不正确!
      还有楼主的程序中“main (int argc, char *argv[]) ”以及“return 0;”这两行程序没学习过不知道是什么意思啊!!!

为了爱与正义 发表于 2015-1-14 09:09:12

数据类型有优先级,在处理运算时编译器会自动转换。所以编译的时候不会报错。

xwmllbd 发表于 2015-1-14 18:32:13

谢谢这位兄弟啊{:1_1:}

~风介~ 发表于 2015-1-15 12:49:23

xwmllbd 发表于 2015-1-11 17:59
版主好,多谢回复我的问题啊,照你写的程序运行了确实不错,结果也是对的,这种情况我也试过,只要是 ...

int main (int argc, char *argv[])——>main函数可以接受参数,返回值为整形
return 0; ——>返回0表示无错误

找一本书认真的看看吧!《c primer plus》不错哟!

xwmllbd 发表于 2015-1-15 21:05:31

好的,版主,书找到了,准备看了,谢谢啊!!!
页: [1]
查看完整版本: 关于3/2,求各位高人解释!