| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5715 人关注过本帖
标题:double型的数据用 %d 输入也可以?
取消只看楼主 加入收藏
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
结帖率:81.82%
收藏
已结贴  问题点数:10 回复次数:16 
double型的数据用 %d 输入也可以?
现在在家自学C语言,看到了第三章,有个题解不出来了,望大家帮忙一下。
编写程序求一元二次方程ax^2+bx+c=0的根。

终于可以睡觉了……
谢谢“heartnheart”、“Justfeeling”、“pangding
程序代码:
#include<stdio.h>
#include<math.h>
main()
{
    double a,b,c,x1,x2;
    printf("请输入a,b,c的值,并用空格隔开:\n");
    scanf("%d %d %d",&a,&b,&c);
    x1=(-b+sqrt(b*b-4*a*c))/2;
    x2=(-b-sqrt(b*b-4*a*c))/2;
    printf("方程%dx^2+%dx+%d=0的结果为:\n x1=%d\n x2=%d\n",a,b,c,x1,x2);
}


为什么double型的数据用 %d 输入也可以?

[ 本帖最后由 dydsdyds 于 2010-2-19 19:18 编辑 ]
搜索更多相关主题的帖子: 输入 数据 double 
2010-02-15 18:47
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 2楼 heartnheart
求根公式别的都好说,但有根号,算术运算符里没有根号,怎么实现?

c语言刚开一学期,就换开VB...
2010-02-15 19:39
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 3楼 Devil_W
迭代法?不明白,
从网上找到了一个,但是看不懂~
迭代法开平方:
  #include<stdio.h>
  #include<math.h>
  void main()
  {
  double a,x0,x1;
  printf("Input a:\n");
  scanf("%lf",&a);//为什么在VC6.0中不能写成 “scanf("%f",&a);”?
  if(a<0)
  printf("Error!\n");
  else
  {
  x0=a/2;
  x1=(x0+a/x0)/2;
  do
  {
  x0=x1;
  x1=(x0+a/x0)/2;
  }while(fabs(x0-x1)>=1e-6);
  }
  printf("Result:\n");
  printf("sqrt(%g)=%g\n",a,x1);
  }
  求平方根的迭代公式:x1=1/2*(x0+a/x0)。
  算法:1.先自定一个初值x0,作为a的平方根值,在我们的程序中取a/2作为a的初值;利用 迭代公式求出一个x1。此值与真正的a的平方根值相比,误差很大。
  2.把新求得的x1代入x0中,准备用此新的x0再去求出一个新的x1.
  3.利用迭代公式再求出一个新的x1的值,也就是用新的x0又求出一个新的平方根值x1,此值 将更趋近于真正的平方根值。
  4.比较前后两次求得的平方根值x0和x1,如果它们的差值小于我们指定的值,即达到我们要求 的精度,则认为x1就是a的平方根值,去执行步骤5;否则执行步骤2,即循环进行迭代。

有没有简单一点的,我刚开始学,自学……
刚看到了第三章……

c语言刚开一学期,就换开VB...
2010-02-15 19:43
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 7楼 Justfeeling
哦,懂了,就象这样吗?
程序代码:
#include<stdio.h>
#include<math.h>
main()
{
    float a;
    printf("请输入a的值:\n");
    scanf("%f",&a);
    printf("%f",sqrt(a));
}
必须是float?

c语言刚开一学期,就换开VB...
2010-02-15 19:57
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 楼主 dydsdyds
帮忙看一下那个错误
程序代码:
#include<stdio.h>
#include<math.h>
main()
{
    double a,b,c,x1,x2;
    printf("请输入a,b,c的值,并用空格隔开:\n");
    scanf("%f %f %f",&a,&b,&c);
    x1=-b+sqrt(b*b-4*a*c);
    x2=-b-sqrt(b*b-4*a*c);
    print("%f,%f",x1,x2);
}
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
a.c
E:\Program Files\vc++\MyProjects\a\a.c(10) : warning C4013: 'print' undefined; assuming extern returning int

a.obj - 0 error(s), 1 warning(s)



c语言刚开一学期,就换开VB...
2010-02-15 20:11
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 10楼 heartnheart
哦,改了,但是得不到结果~

c语言刚开一学期,就换开VB...
2010-02-15 20:28
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 12楼 Devil_W
有什么好一点的编译器吗?推荐一个好吗?
另外,结果还是不对

[ 本帖最后由 dydsdyds 于 2010-2-15 20:46 编辑 ]

c语言刚开一学期,就换开VB...
2010-02-15 20:42
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 14楼 heartnheart
能帮忙再看看吗?
还是不对

c语言刚开一学期,就换开VB...
2010-02-15 23:16
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 17楼 韦春敢
小于0后怎么办?
我刚接触不久……不大明白。
舍去?还是?
我的程序的问题是b的值不对。
弄不清怎么写了。

c语言刚开一学期,就换开VB...
2010-02-15 23:35
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 20楼 pangding
对了,但是我定义的是doubue
为什么也能用%lf?


c语言刚开一学期,就换开VB...
2010-02-16 00:08
快速回复:double型的数据用 %d 输入也可以?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040099 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved