鱼C论坛

 找回密码
 立即注册
查看: 3837|回复: 7

新手求助

[复制链接]
发表于 2018-2-24 22:20:32 | 显示全部楼层 |阅读模式

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

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

x
#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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 = "  也输入进去!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

这样啊,万分感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
请按任意键继续. . .
--------------------------------

************************************/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
请按任意键继续. . .
--------------------------------

************************************/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-3 17:35:13 | 显示全部楼层
sqrt(Number)
如果参数 Number 为负值,函数 SQRT 返回错误值 #Num!
这里也会出现#...的错误输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-29 12:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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