C语言 为什么程序会无限次运行字符?

k2fxgqgv  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(153)
#include <stdio.h>

int main() {
  int n;

  do {
    printf("Enter a Number :");

    scanf("%d", &n);

    printf("%d \n", n);

    if (n % 7 == 0) {
      break;
    }
  } while (1);

  printf("Program Ends");

  return 0;
}

为什么输入任何字符都要运行无限长的时间?
我想知道为什么它会发生?它应该从循环中中断,因为字符不能被7除尽?

w8rqjzmb

w8rqjzmb1#

它不读一个字符。这个叫:scanf("%d", &n);不执行任何操作,因为没有要读取的数字。它返回0,让您知道它没有读取数字,但您不进行检查。

相关问题