C语言 为什么我的循环在我想要终止时没有终止?[已关闭]

klh5stk1  于 2022-12-26  发布在  其他
关注(0)|答案(1)|浏览(128)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

昨天关门了。
Improve this question
我输入了正确的值,但循环仍在继续。帮帮我。

int N;
    int B;
    float A;
    bool condition = (N < 1 || N > 1000) || (A <= 0 || A >= 1) || (B < 1 || B > 1000000000);
    do 
    {
        printf("Enter N: ", "Enter A: ", "Enter B: ");
        scanf("%s %d %s %.3f %s %d", &N, &A, &B);
    }
    while(condition);

我尝试了正确的值,希望它停止循环

iyr7buue

iyr7buue1#

5行许多未定义的行为。

  1. condition只在scanf之前**设置了一次。条件中的变量未初始化。
  2. scanf有6种格式,但您只传递了3个参数(BTW错误)
int N;
    int B;
    float A;
    bool condition;
    do 
    {
        printf("Enter N: " "Enter A: " "Enter B: ");
        fflush(stdout);
        if(scanf("%d %f %d", &N, &A, &B) != 3) {/* handle error */}
        condition = (N < 1 || N > 1000) || (A <= 0 || A >= 1) || (B < 1 || B > 1000000000);
    }
    while(condition);

相关问题