代码之家  ›  专栏  ›  技术社区  ›  beautiful-life

显示带scanf和不带scanf的双变量

  •  0
  • beautiful-life  · 技术社区  · 2 年前

    我有一个关于显示具有双日期类型的变量的值的问题。

    我已经看了 here , text , text here 。然而,这对我没有帮助。

    问题如下: 这是带有scanf命令的**代码**

    #include <stdio.h> 
    int main(){
    double a, b, c , x0, Delta; 
    printf("Inter three numbers:");
    scanf("%lf, %lf, %lf", &a, &b, &c);  
    Delta = b*b - 4*a*c;  
    printf("The value of Delta is %f \n", Delta);
    x0 = -b/(2.0*a); 
    printf("\n the value of x0= %f", x0); 
    return 0; 
    }
    

    使用scanf命令 我键入1 2 1,然后$x0=0.00000000$。这是错误的结果。

    没有scanf命令 如果我直接键入$a=1,b=2,c=1$,那么我得到x0=1000000。

    我想使用scanf命令并获得正确的结果。意思是当a=1,b=2,c=1时,获得x0=1000000。

    1 回复  |  直到 2 年前
        1
  •  0
  •   dbush    2 年前

    你的 scanf format字符串的数字之间有逗号,所以这就是它期望的输入外观。

    如果您输入 1 2 1 ,第一个 %lf 由匹配 1 ,但是 2 与逗号不匹配,因此在该点停止读取,离开 b c 未初始化。

    您需要输入带有逗号的数字,或者从格式字符串中删除逗号。