标题:关于scanf的问题
只看楼主
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
结帖率:0
 问题点数:0 回复次数:13 
关于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
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
占位符查查呢,%d,%f不一样

剑栈风樯各苦辛,别时冰雪到时春
2019-01-28 13:10
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:0 
是不是你输入时用逗号分隔和用空格分隔的问题,
2019-01-28 13:18
hailong2012
Rank: 2
等 级:论坛游民
威 望:1
帖 子:15
专家分:43
注 册:2018-3-12
得分:0 
scanf("%f,%f,%f"&a,&b,&c);语句中第二个逗号你用的是中文状态下的逗号,不是英文状态下的逗号,所以c的值没有读取到。
2019-01-28 15:45
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
得分:0 
回复 4楼 花脸
不是的
2019-01-28 19:23
想都不要想
Rank: 2
等 级:论坛游民
威 望:1
帖 子:7
专家分:29
注 册:2018-11-28
得分:0 
首选可能是我觉得,你这个输入中间是有一个逗号是中文输入的改为英文的逗号,然后你这样子输入比如说1,2,3用英文的逗号隔开
2019-01-28 19:24
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
得分:0 
回复 5楼 hailong2012
试过了,不是这个问题。谢谢
2019-01-28 19:26
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:0 
scanf("%f%f%f",&a,&b,&c);
输入:1 2 1
就可以了的,不需要逗号增加输入限制。

saber,别哭.
2019-01-28 19:51
Badview
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-1-28
得分:0 
回复 9楼 幻紫灵心
谢谢!就是这个问题。    “,”对它有什么影响呢?
2019-01-28 20:11



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




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

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