做 while 循环以要求正输入且小于 10

问题描述

我是 C 新手,我被要求做一个循环,要求用户输入一个数字,然后检查该数字是否为正数且小于 10。但是,我不知道代码有什么问题以下。非常感谢任何帮助。

int main(){
int a;

do{
    printf("Enter a positive number: ");
    scanf("%i",&a);
}while((a <= 0) && (a >= 10));

    printf("%i is positive and less than 10",a);

return 0;
}

解决方法

有两个问题需要解决:

  • 您不是在检查 scanf() 是否成功。 I/O 很脆弱,可能会失败。
  • 条件错误,&& 的两个分支不能同时为真,因此“and”是错误的运算符。您的意思是 ||(布尔值“或”)。