为什么我不能在这里命令时中断?

Why can't I break while command here?

我正在用C 编写一个在线购物代码,但我不知道为什么我的代码进入了一个无限循环并且块中的scanf 函数不起作用。即使我添加 if (b <= a){break;}。我的朋友在 Linux 上尝试 运行 它并得到了不同的结果。它只是根据输入多次写“保证金不足请添加”。这是我的代码;

int a;
int b = 100;
int add;
scanf("%d",&a);
while(a < b)
{
    printf("unsiffcent margin please add");
    scanf("add%d",&add);
    a = a + add;
}

我尝试添加 if(b <= a){break;} 但没有用。我想要一个代码,要求我添加到一个数字,直到数字大于一个值。

scanf("%d",&add);

将解决您的问题。

您的代码有错误:

  • while(a\<b) 会导致语法错误。你可能是说 while (a <= b).
  • a 没有在您的代码中赋值。

这是你想要做的:

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    int max = 100, a = 0, add = 0;
    
    printf("Enter a number: ");
    scanf("%d", &a);
    
    while(a <= max) {
        printf("Unsufficient margin please add another number: ");
        scanf("%d", &add);
        a += add;
    }
    
    printf("a = %d\n", a);
}

您必须提供提示消息,以便用户知道他应该做某事。更好的是,给你的变量起有意义的名字。


旁注:scanf() is not recommended to ask for user input.