问答详情
源自:3-2 算术运算符

输入错误,运行成功

#include <stdio.h>
int main()
{
    int x,y;
    x = 10;
    y = -3;
    printf("x+y=%d\n",x+y     ); 
    printf("x-y=%d\n", x-y    );
    printf("x*y=%d\n",x*y     );
    printf("x/y=%d\n", x/y    );
    printf("x%y=%d\n", x%y    ); 
    return 0;   

运行成功,输出错误

x+y=7
x-y=13
x*y=-30
x/y=-3

这是为什么

提问者:qq_我要瘦十斤_0 2017-11-05 23:27

个回答

  • 岱均
    2017-11-06 00:15:56

    1.一个%是格式字符开始的标志,“%%”中第一个%被叫做脱逸或逃逸字符,跟转义字符的功能差不多。如%d一样在编译的时候会被替换而没有了,所以就称%为逃逸或脱逸字符。

    2.而这里的错误是printf("x%y=%d\n",x%y),正确是printf("x%%y=%d\n",x%y)

  • 你柒哥
    2017-11-05 23:50:03

     printf("x%y=%d\n", x%y    );  中前面部分的%y系统可能理解成是类似%d这样的了,所以改成再加一个%,变成x%%y区分开,其他不变。

  • 三山半月
    2017-11-05 23:48:54

    是输出错误吧,一共要输入5个式子,你只输出了4个,最后的printf("x%y=%d\n", x%y    );  这里面的%要double,即printf("x%%y=%d\n", x%y    );