zhangtiantian 发表于 2018-2-24 22:20:32

新手求助

#include <stdio.h>
#include <math.h>

void main()
{
        double a,b,c,x1,x2,p,q,disc;
        printf("please input a,b,c\n");
        scanf("a=%lf b=%lf c=%lf\n",&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("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
跟着甲鱼老师打的,输入1 2 1,
为什么我的答案运行出来是x1=1.#J,x2=-1.#J

ljd884497 发表于 2018-2-25 03:08:17

scanf("a=%lf b=%lf c=%lf\n",&a,&b,&c);// 这里输入函数用的不对,应为scanf("%lf %lf %lf",&a,&b,&c);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);// 这里应为 printf("x1 = %5.2lf,x2 = %5.2lf\n",x1,x2);

zhangtiantian 发表于 2018-2-25 09:38:05

ljd884497 发表于 2018-2-25 03:08
scanf("a=%lf b=%lf c=%lf\n",&a,&b,&c);// 这里输入函数用的不对,应为scanf("%lf %lf %lf",&a,&b,&c);
...

请问下在scanf("a=%lf b=%lf c=%lf\n",&a,&b,&c);中,为什么后面不能跟\n

风过无痕丶 发表于 2018-2-25 09:47:00

本帖最后由 风过无痕丶 于 2018-2-25 09:48 编辑

zhangtiantian 发表于 2018-2-25 09:38
请问下在scanf("a=%lf b=%lf c=%lf\n",&a,&b,&c);中,为什么后面不能跟\n

scnaf ("xxxxxxxxxxx", xxxxx )
你可以认为 双引号里面的是必选项!
你把 双引号里面的全部输入了,可以运行。
例如你的 a = %lf   。。。。
你就需要输入 a = 多少多少~
我的意思是说 你需要把 "a = "也输入进去!

zhangtiantian 发表于 2018-2-25 22:39:04

风过无痕丶 发表于 2018-2-25 09:47
scnaf ("xxxxxxxxxxx", xxxxx )
你可以认为 双引号里面的是必选项!
你把 双引号里面的全部输入了, ...

这样啊,万分感谢!

549444387@qq.co 发表于 2018-3-3 13:15:25

对你的程序进行了稍微的修改,并附带上运行结果
#include <stdio.h>
#include <math.h>

void main()
{
      double a,b,c,x1,x2,p,q,disc;
      printf("please input a,b,c\n");
      scanf("%lf %lf %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("x1=%5.2f,x2=%5.2f\n",x1,x2);
}


/***********************************

--------------------------------
please input a,b,c
1 2 1
x1=-1.00,x2=-1.00
请按任意键继续. . .
--------------------------------

************************************/

549444387@qq.co 发表于 2018-3-3 13:19:17

这个是输入里面带\n的运行结果,个人感觉scanf里面写的是什么,在显示屏里面就要输入什么,但是尽量在scanf里面不要出现转义字符
#include <stdio.h>
#include <math.h>

void main()
{
      double a,b,c,x1,x2,p,q,disc;
      printf("please input a,b,c\n");
      scanf("%lf %lf %lf\n",&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("x1=%5.2f,x2=%5.2f\n",x1,x2);
}


/***********************************

--------------------------------
please input a,b,c
1 2 1 \n
x1=-1.00,x2=-1.00
请按任意键继续. . .
--------------------------------

************************************/

757129128 发表于 2018-3-3 17:35:13

sqrt(Number)
如果参数 Number 为负值,函数 SQRT 返回错误值 #Num!
这里也会出现#...的错误输出
页: [1]
查看完整版本: 新手求助