fzzy200 发表于 2022-8-12 21:08:57

请问,009第三章 顺序程序设计03的例题4.15

本帖最后由 fzzy200 于 2022-8-14 09:51 编辑

#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

ba21 发表于 2022-8-13 12:41:30

scanf("%lf,%lf,%lf",&a,&b,&c);
输入:100,200,10

蓝Q曦 发表于 2022-8-13 16:41:15

输入的数值不正确,sqrt平方根的值是要大于0的

ExiaGN001 发表于 2022-8-13 16:48:43

蓝Q曦 发表于 2022-8-13 16:41
输入的数值不正确,sqrt平方根的值是要大于0的

不对吧,这问题是scanf里有文字造成的吧

liuzhengyuan 发表于 2022-8-14 00:58:59

ExiaGN001 发表于 2022-8-13 16:48
不对吧,这问题是scanf里有文字造成的吧

这个还是要看怎么输入的

fzzy200 发表于 2022-8-14 09:51:30

本帖最后由 fzzy200 于 2022-8-14 10:05 编辑

蓝Q曦 发表于 2022-8-13 16:41
输入的数值不正确,sqrt平方根的值是要大于0的

因为有函数要有一定的取值范围,还有scanf中的a=,b=.c=;要去掉 或者用printf语句~多谢

ExiaGN001 发表于 2022-8-14 10:19:09

liuzhengyuan 发表于 2022-8-14 00:58
这个还是要看怎么输入的

给的内容合乎要求的话就不应该有问题啊

霸王龟 发表于 2022-8-14 12:03:04

对二楼做个补充,就是scanf的格式控制字符串中若是有普通字符,那么你输入的时候也要输入该字符,就比如你要输入a=   ,b=,c=    所以一般在输入格式控制字符串时不写除分隔符之外的普通字符,包括转义字符 。

fzzy200 发表于 2022-8-14 19:06:46

霸王龟 发表于 2022-8-14 12:03
对二楼做个补充,就是scanf的格式控制字符串中若是有普通字符,那么你输入的时候也要输入该字符,就比如你 ...

试了~对的谢谢
页: [1]
查看完整版本: 请问,009第三章 顺序程序设计03的例题4.15