问答详情
源自:2-8 自动类型转换

这就行啦?最后一个不用输?和运行结果也不一样啊,求解!

C语言   2-8  自动类型转换

55af77920001316f02340104.jpg

55af779300011bfc01740169.jpg

55af77930001241305000524.jpg


提问者:六月想养猫 2015-07-22 19:00

个回答

  • 寒江北去
    2015-07-22 22:00:59
    已采纳

    第7行 由于没写分号,而且后边又写了注释,于是和第8行的代码变成了一句,于是变成了:

    #include <stdio.h>
    int main()
    {
        char c = 'a';
        int n =c;         //将c赋值给n
        float f =  c;     //将c赋值给f
        double d = printf("%d\n",n);
        printf("%f\n",f);
        printf("%lf\n",d);
        return 0;    
    }

    1.double d=printf("%d\n",n); 其中int n=c;字符a被强制转换类型,根据ASCII表 a对应的值为97。printf函数将97打印出来,得到第一行结果 97。printf函数返回值为输出的字符串的长度,因为输出的字符为97和一个 换行符,所以字符串长度为3,即d=3.000000

    2. printf("%f\n",f); 字符a强制转换成浮点型,得到97.000000

    3.那么问题来了。根据1的分析,输出了3.000000

    所以少年啊 第7行你少写了个c;

  • 六月想养猫
    2015-07-23 10:07:58

    噢,第七行和第八行是一句