代码未执行

时间:2014-08-18 12:28:41

标签: c integer

我正在解决基本的C练习。写入时,以下代码无法执行。任何人都可以建议为什么?

#include <stdio.h>

int main()
{
  int i = 4, j = -1, k = 0, w, x, y, z;

  w = i || j || k;
  x = i && j && k;
  y = i || j && k;
  z = i && j || k;

  printf("w=%d x=%d y=%d z=%d", w, x, y, z);
  return 0;
}

P.S。没有显示错误,但执行窗口没有打开。

2 个答案:

答案 0 :(得分:3)

似乎没有发生任何事情的原因是执行窗口在应用程序终止后不会挂起,应用程序本身执行得如此之快以至于你以前没有机会看到窗口它已经消失了。

解决此问题的一种方法是在应用程序退出之前插入读取输入的代码:

#include <stdio.h>

int main()
{
  int i = 4, j = -1, k = 0, w, x, y, z;

  w = i || j || k;
  x = i && j && k;
  y = i || j && k;
  z = i && j || k;

  printf("w=%d x=%d y=%d z=%d", w, x, y, z);  /* You probably want \n here. */

  getchar();

  return 0;
}

答案 1 :(得分:0)

#include<stdio.h>

int main()
{
    int i=4,j=-1,k=0,w,x,y,z;
    w=i||j||k;
    x=i&&j&&k;
    y=i||j&&k;
    z=i&&j||k;
    printf("w=%d x=%d y=%d z=%d\n",w,x,y,z);
    //                         ^^ Hello there.
    return 0;
}

原因:stdout在终端上是行缓冲的,因此在输出换行符('\n')之前不会打印任何内容。