这个程序的输出结果如何?

时间:2019-03-11 18:03:24

标签: c post-increment decrement

您好我是Stackoverflow社区的专业程序员,我还是一个初学者,我需要帮助来了解以下问题:

int main()
{
    int x=4,y=0;
    while(x>=0)
    {
        if(x==y)
            break;
        else
            printf("\n%d%d",x,y);
        x--;
        y++;
    }
}

输出40和31的方式和原因为何,

2 个答案:

答案 0 :(得分:1)

要更好地理解程序为什么输出未预期的内容,请尝试通过与printf一起使用,并了解要打印的每个值来找到原因。

例如,在这里您可以尝试以下操作:

df2 = df2.merge(...)

希望有帮助

答案 1 :(得分:0)

您的程序仅打印两次并循环三次。

在第一次运行时,它会打印40,因为X = 4并且Y = 0。然后X递减(x-),Y递减(y ++)。 X现在是3,Y现在是1。

在第二次运行中,由于X = 3和Y = 1,因此将打印31。然后X再次递减(x-),Y再次递减(y ++)。 X现在是2,Y现在是2。

在第三次运行时,程序由于X = 2和Y = 2而中断。