在Dev C中打印

时间:2013-12-26 13:22:46

标签: c

我用dev编写了一个简单的代码,但它没有返回任何东西。但是代码块的答案显示。问题是什么?

#include <stdio.h>

int main() {
    int x,y,z;
    scanf("%d%d",&x,&y);
    while(z!=0){
        z=x%y;
        printf("%d",z);
    }
    return 0;
}

4 个答案:

答案 0 :(得分:8)

我可以看到两个问题:

1. Value to z is un-assigned. So garbage.
2. Value of z will not change, so it's infinite loop.

答案 1 :(得分:7)

它调用 undefined behavior ,因为z未初始化使用。

while( z!= 0)  
       ^
       |
     z is uninitialized  

您可能会得到任何预期或意外结果。程序也可能崩溃。在不同的编译器上,您可能会得到不同的结果,这就是这种情况。

答案 2 :(得分:1)

您无法看到输出,因为一旦程序退出,它就会关闭终端/输出窗口。

在code :: block中,他们运行一个脚本来保存输出窗口,直到您按下enter 在返回之前,最后使用getch()调用可以产生相同的效果。这将等待您的输入并为您提供查看结果的范围。

此外,您的计划有几个问题,其他答案指出。相应地修复它们。

答案 3 :(得分:1)

在您的代码中,您被分配了z但未初始化z并且您正在检查while(z!=0),因此您的代码不返回值,将z分配给任何值,例如来自scanf