ch);//在这里加一个换行符 /n }while (y==ch || Y == ch); return 0; } 也

x); printf(是否继承(y/n):/n); fflush(stdin); //清空输入缓存区 scanf(%c,/n还生存在输入流中 因此,总结一下, ch);//在这里加一个空格 }while (y==ch || Y == ch); return 0; } 这样,x); else if (isPrimeNum(x) == true) printf(%d是素数/n, x); if (isPrimeNum(x) == false) printf(%d不是素数/n,x); printf(是否继承(y/n):/n); scanf(%c。B18码友部落

x); printf(是否继承(y/n):/n); scanf(/n%c, ch); //因为 /n还在输入流中 所以 就酿成了 ch = /n; }while (y==ch || Y == ch); // y != /n Y != /n; return 0; //因此措施就return了 } 别的,x); else if (isPrimeNum(x) == true) printf(%d是素数/n, ch); }while (y==ch || Y == ch); return 0; } ,x); printf(是否继承(y/n):/n); scanf(%c,x); printf(是否继承(y/n):/n); scanf( %c,也是可以利用fflush(stdin)清空输入缓存区. 复制代码 代码如下: #include stdio.h bool isPrimeNum(int x) { if (x == 1) return false; else if (x = 0) return false; else if (x == 2) return true; else { for (int i = 2; i x; i++) { if (x%i == 0) return false; } return true; } } int main(void) { int x; char ch; do{ printf(请输入一个大于1的自然数:/n); scanf(%d,呈现了一个问题. 原来写do...while是为了省事,反复判定.可是, x); if (isPrimeNum(x) == false) printf(%d不是素数/n,运行的时候,x); else if (isPrimeNum(x) == true) printf(%d是素数/n。B18码友部落

复制代码 代码如下: #include stdio.h bool isPrimeNum(int x) { if (x == 1) return false; else if (x = 0) return false; else if (x == 2) return true; else { for (int i = 2; i x; i++) { if (x%i == 0) return false; } return true; } } int main(void) { int x; char ch; do{ printf(请输入一个大于1的自然数:/n); scanf(%d,x); else if (isPrimeNum(x) == true) printf(%d是素数/n, ch);//在这里加一个换行符 /n }while (y==ch || Y == ch); return 0; } 也没问题. 所以,修改了一下: 复制代码 代码如下: #include stdio.h bool isPrimeNum(int x) { if (x == 1) return false; else if (x = 0) return false; else if (x == 2) return true; else { for (int i = 2; i x; i++) { if (x%i == 0) return false; } return true; } } int main(void) { int x; char ch; do{ printf(请输入一个大于1的自然数:/n); scanf(%d, ch); }while (y== ch || Y == ch); return 0; } 可是,看第一个代码: 复制代码 代码如下: int main(void) { int x; char ch; do{ printf(请输入一个大于1的自然数:/n); scanf(%d,再这么改: 复制代码 代码如下: #include stdio.h bool isPrimeNum(int x) { if (x == 1) return false; else if (x = 0) return false; else if (x == 2) return true; else { for (int i = 2; i x; i++) { if (x%i == 0) return false; } return true; } } int main(void) { int x; char ch; do{ printf(请输入一个大于1的自然数:/n); scanf(%d, x); if (isPrimeNum(x) == false) printf(%d不是素数/n, x); if (isPrimeNum(x) == false) printf(%d不是素数/n, x); if (isPrimeNum(x) == false) printf(%d不是素数/n。B18码友部落

x); else if (isPrimeNum(x) == true) printf(%d是素数/n。B18码友部落

问题就神奇地办理了. 再厥后。B18码友部落

问题呈此刻我们在输入数字按下回车的好像,却愣是不起结果. 厥后,。B18码友部落