鱼C论坛

 找回密码
 立即注册
查看: 2047|回复: 3

[已解决]009第三章 顺序程序设计03 例4-15有点疑惑谢谢答疑

[复制链接]
发表于 2022-8-12 20:42:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<math.h>
void main()
{
        double a,b,c,disc,x1,x2,p,q;
        scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c);
        disc=b*b-4*a*c;
        p=-b/(2*a);
        q=sqrt(disc)/(2*a);
        x1=p+q;
        x2=p-q;
        printf("\nx1=%5.2f\nx2=%5.2f\n",x1,x2);
}
结果为什么是
x1=-1.#J
x2=-1.#J
最佳答案
2022-8-13 12:42:00

scanf("%lf,%lf,%lf",&a,&b,&c);
输入:100,200,10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-13 12:42:00 | 显示全部楼层    本楼为最佳答案   

scanf("%lf,%lf,%lf",&a,&b,&c);
输入:100,200,10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-13 16:46:27 | 显示全部楼层
本帖最后由 ExiaGN001 于 2022-8-13 16:47 编辑

当scanf中出现格式控制符以外的文字时,你必须给予程序这些文字。
例如scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c);
在执行时,你输入的应是满足以下格式的字符串:
a=[float范围内的数],b=[float范围内的数],c=[float范围内的数]
代码应按照如下格式改动:
#include<stdio.h>
#include<math.h>
void main()
{
        double a,b,c,disc,x1,x2,p,q;

        printf("a=");
        scanf("%lf",&a);
        printf(",b=");
        scanf("%lf",&b);
        printf(",c=");
        scanf("%lf",&c);

        disc=b*b-4*a*c;
        p=-b/(2*a);
        q=sqrt(disc)/(2*a);
        x1=p+q;
        x2=p-q;
        printf("\nx1=%5.2f\nx2=%5.2f\n",x1,x2);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-14 10:03:15 | 显示全部楼层
ExiaGN001 发表于 2022-8-13 16:46
当scanf中出现格式控制符以外的文字时,你必须给予程序这些文字。
例如scanf("a=%lf,b=%lf,c=%lf",&a,&b,& ...

你的这种方法也可以,感谢答疑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-28 19:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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