求大佬帮忙看看这个代码

Bear_0111 2019-11-05 10:20:04
学校实验课的作业,因为是新学的我基础不好,运行结果一直不对,求大佬指点
无论我输入什么数,输出结果总是这个
...全文
836 61 打赏 收藏 转发到动态 举报
写回复
用AI写文章
61 条回复
切换为时间正序
请发表友善的回复…
发表回复
P1um 2019-11-21
  • 打赏
  • 举报
回复
除了scanf有问题 还少了math头文件
zrd122767 2019-11-20
  • 打赏
  • 举报
回复
引用 楼主 Bear_0111的回复:
学校实验课的作业,因为是新学的我基础不好,运行结果一直不对,求大佬指点
无论我输入什么数,输出结果总是这个
请在scanf之后确认abc的输入是否正常
潇烟暮雨 2019-11-19
  • 打赏
  • 举报
回复
明scanf输入是有问题的,格式不需要设置的那么复杂,能区分出参数就够了
include.he 2019-11-13
  • 打赏
  • 举报
回复
引用 3 楼 Bear_0111的回复:
[quote=引用 2 楼 SuperDay的回复:]请在scanf之后确认abc的输入是否正常
怎么确定?abc输入的值不是我随机输入的吗[/quote] 那应该就不用打等于号吧,要么就要代入值
  • 打赏
  • 举报
回复
scanf语句里面所写的虽然不是错误的,但是极其繁,如果使用写的这个就得在输入a=(你想输入的值),同理b c的值也一样,不能像你一样直接输入a b c的值,如果像直接输入,那么你就把scanf里面的a= b c=和之间的逗号去掉,直接写成scanf(lf%lf%lf%,&a,&b,&c);这样是合格写法!希望对你有用
aFJTa 2019-11-12
  • 打赏
  • 举报
回复
像读天书一样怎么办
  • 打赏
  • 举报
回复
有意思
枯槁橘子皮 2019-11-12
  • 打赏
  • 举报
回复
你这个应该是先判断d是否大于等于零,理论上,只有当d大于零时才有解,这个时候如果判断结果为正确的,就可以直接求解,而且 当abc都等于零的时候d也是满足大于等于零的 所以你那个判断范围也有问题,具体的你改一下就行,这个非常简单
nanmi94 2019-11-11
  • 打赏
  • 举报
回复
引用 6 楼 Bear_0111 的回复:
[quote=引用 4 楼 SuperDay的回复:]printf出来啊,scanf不是你想象的那么简单
抱歉,听不懂,该怎么搞?[/quote]好像输入时的格式在你编程就定义好了,所以看你的输入三个数之间不能加空格,空格本身也是代表了一个数即阿斯克码
Zach Liu 2019-11-10
  • 打赏
  • 举报
回复
abc每输入一个数用逗号隔开(英文逗号)
for(::) 2019-11-10
  • 打赏
  • 举报
回复
scanf里面有什么就要输什么,意思就是说,你要把a=,b=,c=也要打出来
oCindy1234 2019-11-09
  • 打赏
  • 举报
回复
基础不扎实,上课没好好听讲
liudachu 2019-11-09
  • 打赏
  • 举报
回复
用sqrt,需要在开头定义上#include<math.h>
qq_45828438 2019-11-08
  • 打赏
  • 举报
回复
可能是你的工作空间没有关 要关掉后,再运行
刘吉亮 2019-11-08
  • 打赏
  • 举报
回复
我的乖乖,一个都看不懂
IT_Painter 2019-11-08
  • 打赏
  • 举报
回复
你可以先把sqrt函数的头文件加上,就是前面加上#include<math.h>
advance_coder 2019-11-08
  • 打赏
  • 举报
回复
引用 49 楼 advance_coder的回复:
scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c); 注意上面一行代码,是用逗号分割的,所以你的输入应该是1,2,3而不是1 2 3 这才是问题的根结(scanf内部会根据参数字符串去解析你输入的字符串,遇不到逗号,无法正常解析)。 建议如下编写,只是添加了一行代码,看你输入的字符串,scanf是否正常解析。 scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c); printf("你刚才输入的数字为a=%lf,b=%lf,c=%lf",a,b,c); 结论你C/C++的底子很弱,好好把书看一遍,scanf这种基础的函数书中会有详细解释的,除非你书选的不对。 再就是注意你代码中printf参数里面的%0.2f %m.nf m是浮点数显示的总长度(包含小数,不包含点),m不表示出来时,浮点数有多长显示多长,n是小数个数。 比如 float a = 45631.1234 printf("a=%7.2f\n",a); 屏幕输出为45631.12 所以这里你的代码有两个问题, 1 %0.2改为%.2 2 你一直使用双精度double参与计算,最终修改后应该是%.2lf。 好啦,感觉分可以给我了
有问题,你的输入应该是a=1,b=2,c=3
advance_coder 2019-11-08
  • 打赏
  • 举报
回复
scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c); 注意上面一行代码,是用逗号分割的,所以你的输入应该是1,2,3而不是1 2 3 这才是问题的根结(scanf内部会根据参数字符串去解析你输入的字符串,遇不到逗号,无法正常解析)。 建议如下编写,只是添加了一行代码,看你输入的字符串,scanf是否正常解析。 scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c); printf("你刚才输入的数字为a=%lf,b=%lf,c=%lf",a,b,c); 结论你C/C++的底子很弱,好好把书看一遍,scanf这种基础的函数书中会有详细解释的,除非你书选的不对。 再就是注意你代码中printf参数里面的%0.2f %m.nf m是浮点数显示的总长度(包含小数,不包含点),m不表示出来时,浮点数有多长显示多长,n是小数个数。 比如 float a = 45631.1234 printf("a=%7.2f\n",a); 屏幕输出为45631.12 所以这里你的代码有两个问题, 1 %0.2改为%.2 2 你一直使用双精度double参与计算,最终修改后应该是%.2lf。 好啦,感觉分可以给我了
miss writer 2019-11-08
  • 打赏
  • 举报
回复
sqrt需要math.h的头文件,scanf函数不能写a=之类的东西
稳得一笔 2019-11-08
  • 打赏
  • 举报
回复
我记得我学的是scanf_s
加载更多回复(41)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧