| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
乐学 会学 多求 善思千里之行 始于足下
共有 325 人关注过本帖
标题:关于scanf的问题
只看楼主 加入收藏
Badview
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2019-1-28
  问题点数: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);有什么区别吗?这两段代码都可以运行,前者是正确的,后者是错误的。求解答!
2019-01-28 11:55
Badview
Rank: 1
等 级:新手上路
帖 子:7
专家分: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
来 自:湖南
等 级:版主
威 望:111
帖 子:1792
专家分:7795
注 册:2015-3-19
  得分:0 
占位符查查呢,%d,%f不一样

知命以下无敌
2019-01-28 13:10
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:768
专家分:746
注 册:2017-1-4
  得分:0 
是不是你输入时用逗号分隔和用空格分隔的问题,
2019-01-28 13:18
hailong2012
Rank: 2
等 级:论坛游民
威 望:1
帖 子:9
专家分:19
注 册:2018-3-12
  得分:0 
scanf("%f,%f,%f"&a,&b,&c);语句中第二个逗号你用的是中文状态下的逗号,不是英文状态下的逗号,所以c的值没有读取到。
2019-01-28 15:45
Badview
Rank: 1
等 级:新手上路
帖 子:7
专家分: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
等 级:新手上路
帖 子:7
专家分:0
注 册:2019-1-28
  得分:0 
回复 5楼 hailong2012
试过了,不是这个问题。谢谢
2019-01-28 19:26
幻紫灵心
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山咔咔里面
等 级:版主
威 望:33
帖 子:311
专家分:2161
注 册:2018-3-30
  得分:0 
scanf("%f%f%f",&a,&b,&c);
输入:1 2 1
就可以了的,不需要逗号增加输入限制。

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







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

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