鱼C论坛

 找回密码
 立即注册
查看: 2987|回复: 15

数据问题

[复制链接]
发表于 2012-1-19 18:13:23 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 鱼C海星 于 2012-1-19 19:00 编辑

#include <stdio.h>
void main()
{
    float p1=3.14;
    double s;
   int r =1;
   s = r*r*P1;
   printf("s = %d\n",s);


}

式子如上,大家计算得到多少啊,我试了试好像很模糊,也许后面的视频会提到吧,可是我怕以后不记得了,谁能帮我看看?

最佳答案

查看完整内容

首先,C语言是区分大小写的。 s = r*r*P1;中P为大写,而定义却为小写。s为双精度浮点数,输出format不能使用%d(%d是整数占位符),可以使用%f,%e或%g来表示,个人比较喜欢使用%g。PI最好定义为宏(一般常量都如此)。 而且你的语言风格不是很好。现在的C99标准推荐使用如下格式的主函数: int main(void) { return 0;//有个返回值。 } 在C89标准中,main() 的形式是可以接受的,当然使用如下的C99标准更明智,因为在这 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-19 18:13:24 | 显示全部楼层
本帖最后由 jakes 于 2012-1-20 02:06 编辑

首先,C语言是区分大小写的。 s = r*r*P1;中P为大写,而定义却为小写。s为双精度浮点数,输出format不能使用%d(%d是整数占位符),可以使用%f,%e或%g来表示,个人比较喜欢使用%g。PI最好定义为宏(一般常量都如此)。
而且你的语言风格不是很好。现在的C99标准推荐使用如下格式的主函数:
int main(void)
{

   return 0;//有个返回值。
}
在C89标准中,main() 的形式是可以接受的,当然使用如下的C99标准更明智,因为在这个标准中只有如下格式才能被接受:  
int main(void)
int main(int argc, char *argv[])
对于C++,以下是可以接受的格式:   
int main(int argc, char *argv[])  
int main ()
也就是说,空返回是新标准所不承认的(当然,在VC下是可以编译通过的。因为MS一贯喜欢独立于国际标准,搞一个“软微标准”)。
可以看一下文章<void main(void) - the Wrong Thing>地址:http://users.aber.ac.uk/auj/voidmain.shtml
解释主函数空返回错误的一些原因。


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-19 18:35:11 | 显示全部楼层
学习 学习!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-19 19:03:57 | 显示全部楼层
s是double类型的,不能用%d打印,要用%f打印
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-19 21:08:05 | 显示全部楼层
这里应该存在一个数值类型转换的问题吧,double型与float之间的转换。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-19 21:09:46 | 显示全部楼层
我是自学的,小甲鱼老师的C语言我还没有学,我只是在以前自己学过,应该是这样吧。有什么问题还希望能多多与我交流,我回去看下,再来与您谈讨。
上面我所说的应该是没有什么问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-19 21:11:01 | 显示全部楼层
我忘记double型数据是什么类型的了,依稀还得float是浮点型数据,也就是实型数据,即实数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-20 11:29:39 | 显示全部楼层
首先你那p1一个p是大写,一个P是小写,编译肯定不通过,还有就是定义的double类型,打印用%d,反正我不知道啥原理,打印的就是一行比较大的数,应该用%f才是啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-21 18:25:23 | 显示全部楼层
如果是 整数型的应该用%d打印出来,如果是 单精度和双精度型的就要用%f打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-22 04:51:14 | 显示全部楼层
/*
        时间: 2012年1月31日4:51:32
        功能: 变量类型之间的隐式转换
*/

#include <stdio.h>

void main()
{
   const float pi = 3.14;
   double s;
   int r = 1;

   s = r * r * pi;

   printf("s = %4.2lf\n",s);         
}

/*
        在vc++6.0中输出的结果如下:
------------------------------------
        s = 3.14
------------------------------------
*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-24 17:11:52 | 显示全部楼层
会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-24 20:03:27 | 显示全部楼层
这是未定义行为吧。不同的编译器有不同的处理吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-4 16:17:18 | 显示全部楼层
  1. #include <stdio.h>

  2. void main()
  3. {
  4.         float p1 = 3.14;
  5.         double s;
  6.         int r = 1;
  7.         s = r*r*p1;

  8.         printf("s = %d\n",s);        // 以整型形式输出s变量
  9.         printf("s = %lf\n",s);        // 以双精度浮点型形式输出s变量
  10. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-6 15:16:23 | 显示全部楼层
7#讲的很详细.支持.你那个变量用pi命名会比较好一点.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-7 20:21:39 | 显示全部楼层
实型变量和整型变量在内存中储存的方式是不同的,你用实型的方式储存了实型变量s,又用整型读取,由于存入和读取的方式不同,所以值会变化,变成垃圾值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-8 21:55:11 | 显示全部楼层
顶小甲鱼老师,有谁C程序设计的所有代码和课件。能发给我吗?
邮箱:279423392@qq.com  好人有好报
随便问一下 数据结构【c语言版本】怎么能学好这一本书
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 18:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表