c语言如果输入错误号码再次询问用户

时间:2017-06-06 11:53:54

标签: c loops

如果输入的值小于10,我试图让用户再次输入该号码 我确定问题在于while语句。 这就是我所拥有的

printf_s("Enter the player first name: ");
scanf_s("%s", names[i], 25);  //enters name and creates a newline <enter key>//

printf_s("Minimum number to stop in a turn: ");
scanf_s("%d", &min_number, sizeof(int));
do {
printf_s("please enter a number greater or egual to 10");
} while (min_number <= 10);
        scanf_s("%d ", &min_number);
        printf_s("please enter a number greater or equal to 10\n\n");

是do while循环的最佳选择,或者我应该看看使用其他类型的循环

enter image description here

1 个答案:

答案 0 :(得分:0)

正如我纠正的那样,scanf返回成功分配的接收参数的数量。 这是一个固定版本:

void main(){
        int num = 0;
     while(num <=10){ 
         scanf("%d ", &num);
         printf_s("please enter a number greater or equal to 10\n\n");
     }
 }

在创作之后,根据他的要求编辑了代码:

do {
        printf_s("please enter a number greater or egual to 10\n\n");
        scanf_s("%d", &min_number);
    } while (min_number < 10);

当执行do / while循环时,循环体位于  执行 {正文在此处} ,而某些条件);。

在另一次编辑后,根据作者请求:

printf_s("Minimum number to stop in a turn: ");
    scanf_s("%d", &min_number, sizeof(int));

    while(min_number < 10){
        printf_s("please enter a number greater or egual to 10\n\n");
        scanf_s("%d", &min_number);

    }

这将执行以下操作,它将要求“转弯时停止的最小数量:”如果它大于或等于10,它将在循环后继续。如果不是,它将澄清“请输入一个更大的数字或10到10的数字”,并将收到另一个输入。它将循环,直到它接收到更大或最终为10。