标题:关于scanf的问题
取消只看楼主
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
结帖率:0
 问题点数:0 回复次数:6 
关于scanf的问题
解一元二次方程
#include <stdio.h>
#include <math.h>
main( ) {
    float a,b,c,d,x,y;   //x,y分别为方程的两个解//
    printf("Please input a,b,c\n");
    scanf("%f",&a);
    scanf("%f",&b);
    scanf("%f",&c);
    d=b*b-4*a*c;  //d为根的判别式 //
    if (d>=0)
    {
    x=(-b-sqrt(d))/(2*a);
    y=(-b+sqrt(d))/(2*a);
    printf("x=%5.2f,y=%5.2f",x,y);
    }
    else
    printf("方程无实根");
}
可以满足要求


错误的解一元二次方程
#include <stdio.h>
#include <math.h>
main( ) {
    float a,b,c,d,x,y;   //x,y分别为方程的两个解//
    printf("Please input a,b,c\n");
    scanf("%f,%f,%f",&a,&b,&c);    //错误的地方//
   
    d=b*b-4*a*c;  //d为根的判别式 //
    if (d>=0)
    {
    x=(-b-sqrt(d))/(2*a);
    y=(-b+sqrt(d))/(2*a);
    printf("x=%5.2f,y=%5.2f",x,y);
    }
    else
    printf("方程无实根");
}

结果都是方程无实根

scanf("%f",&a);  scanf("%f",&b);  scanf("%f",&c); 与 scanf("%f,%f,%f",&a,&b,&c);有什么区别吗?这两段代码都可以运行,前者是正确的,后者是错误的。求解答!
搜索更多相关主题的帖子: scanf 方程 include printf 错误 
2019-01-28 11:55
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
得分:0 
scanf("%f,%f,%f",&a,&b,&c);
输入 1    2   1
输出的是  a=1.00000   b=0.00000   c=0.00000
2019-01-28 12:19
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
得分:0 
回复 4楼 花脸
不是的
2019-01-28 19:23
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
得分:0 
回复 5楼 hailong2012
试过了,不是这个问题。谢谢
2019-01-28 19:26
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
得分:0 
回复 9楼 幻紫灵心
谢谢!就是这个问题。    “,”对它有什么影响呢?
2019-01-28 20:11
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
得分:0 
回复 12楼 hailong2012
确实是。不过这样每次输入都需要用英文逗号隔开才能正常运行。
所以把代码中的逗号去掉比较好。谢谢了!
2019-01-29 10:16
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
得分:0 
回复 7楼 想都不要想
你是对的
2019-01-29 10:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492865-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.407451 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved