Prentis 发表于 2014-1-20 16:07:37

求助,我是c语言菜鸟

本帖最后由 Prentis 于 2014-1-20 16:11 编辑

#include <stdio.h>

void main()
{
      float PI=3.14159;
          double s;
          int r = 5;
          s = r * r * PI;
          printf("s=%d\n",s);
}
这个程序错哪了,为什么运行的结果是s=1342177280

Utend 发表于 2014-1-20 16:31:54

printf语句输出格式写错了,把%d改成%f

牡丹花下死做鬼 发表于 2014-1-20 17:00:04

#include <stdio.h>

void main()
{
        float PI=3.14159;
        double s;
        int r = 5;
        s = r * r * PI;
        //printf("s=%d\n",s);//是%f不是%d
        printf("s = %f\n",s);
}

风涯 发表于 2014-1-31 14:26:55

r是整形,PI是浮点型,%d改成%f这个程序就是正确的了

无名侠 发表于 2014-2-3 14:28:20

printf("s=%d\n",s); 这一句错了,%d表示以十进制整数输出。改成%f

慕雨秋枫 发表于 2014-2-10 00:58:18

改成%f看看

lark 发表于 2014-2-10 10:06:48

强制转换一下数据类型,float和int数据类型不同,你要定义的话,可以定义成全是float的,比如,floatr=5.0    ,还有就是你可以使用宏定义,定义下pi,不过我建议你还是找些简单的数学计算吧。不一定非要用这个

lark 发表于 2014-2-10 10:10:46

啥?!!咋还有double数据类型,你要把三个数据类型转换成一种数据类型才行,不过别使用int,因为pi,3.1415926,计算结果会自动截取小数点,直接现实整数的

lark 发表于 2014-2-10 10:12:03

你还是都使用double吧,这种程序,网上都这样写的。我也是新手,只是给个建议。

Taily 发表于 2014-2-10 10:35:01

三个数据都是不同类型的啊,如果直接计算的话编译器好像会把其他数据类型转化成int类型,但是不准确
把printf语句的d%格式改成f%格式估计就没问题了
页: [1]
查看完整版本: 求助,我是c语言菜鸟