为什么b,c会赋值失败

img


为什么b,c没有被赋值

你输入没有分隔符 会读入混乱,可以用空格分割一下

scanf("%f %f %f",&a,&b,&c);

然后再输入 1.23 3.2 4.5这样以空格分割数据

#include<stdio.h>
int main()
{
    float a,b,c;
    scanf("%f %f %f",&a,&b,&c);

    printf("%f %f %f",a,b,c);
    return 0;
}

img

贴一下运行结果看一下
写法看着没什么问题,可能是printf里面三个数字连在一起了,尝试在输出的%f之间加上空格

你肯定是输入的时候浮点数之间加逗号了,把逗号改成空格,或者换行就可以了

你写的输入scanf(%f%f%f)后输入的时候就只能用空格输入,比如1 2 3。不能1,2,3。如果要用逗号输入的话就要改成 scanf(%f,%f,%f)这种形式。

不是赋值失败,是因为你输入的数值问题,你保证b*b-4ac>=0,否则sqrt开根号会出现错误显示