美文网首页
scanf()少了&会怎样

scanf()少了&会怎样

作者: 莫一是 | 来源:发表于2017-11-17 23:46 被阅读0次
    要求像下面的代码一样,输入两个整数,并输出前者是后者的百分之几。 题图

    这与昨天的练习类似,只是改为实数类型而已。

    我的代码如下:

    #include <stdio.h>
    
    int main(){
        double a;
        double b;
        
        puts("请输入两个整数。");
        printf("整数A:"); scanf("%lf",a);
        printf("整数B:"); scanf("%lf",b);
        
        printf("A是B的 %f%%。",a/b*100);
        
        return 0;
    } 
    

    如果你仔细看了,可能就会发现 scanf()的第二个实参缺少了&。
    此时运行如下图


    问题代码运行

    当扫描第一个实数时,程序意外停止。

    最初我并未发现代码的错误,可能是写得太累了。我转而考虑是否可能是兼容性问题,并尝试地更改设置。最后脑子一清醒,发现是 scanf()错了,我也是很囧。。。
    缺少取值运算符&时,编译通过、程序运行,仅在扫描第一个实数时停止的现象,也算是唯一稍微让我有点兴趣的了。


    照例贴上修改过的正确代码:

    #include <stdio.h>
    
    int main(){
        double a;
        double b;
        
        puts("请输入两个整数。");
        printf("整数A:"); scanf("%lf",&a);
        printf("整数B:"); scanf("%lf",&b);
        
        printf("A是B的 %f%%。",a/b*100);
        
        return 0;
    } 
    

    相关文章

      网友评论

          本文标题:scanf()少了&会怎样

          本文链接:https://www.haomeiwen.com/subject/gpmsvxtx.html