我刚刚开始在C编程中学习循环,并试图创建一个简单的程序来测试我的知识,但这将行不通



我只是想要一个让用户输入a和b值的程序,如果值a小于b,则会要求用户重复此过程。这是我的程序:


#include <stdio.h>
#include <math.h>
int main(void)
{
        int a, b ,c;
while (a<=b)
{
        printf("Please enter a value for a:n");
        scanf("%d", &a);
        printf("Please enter a value for b:n");
        scanf("%d", &b);
        if (a<=b)
                printf("a must be greater than b:n");
}
        c=a+b;
        printf("The answer of c is: %dn", c);
return 0;
}

一旦我运行该程序,它就会打印:" C的答案是:1829030"(请注意,最后一个数字始终是随机的(

请帮助我运行此程序。

非初始化非静态局部变量的值不确定。这意味着该值可以在运行时进行任何内容。在这种情况下,a,b,c的值是随机的,循环可能会根据a,b,c。

的随机值输入或可能不会输入。

尝试 -

int a = 0, b = 0, c;

您声明变量a, b, c,但您没有给它们一个初始值。这意味着它们具有不确定的价值。在宣布a and b没有给出的值的情况下,您继续进行while (a <= b)条件上的比较。C显然不知道如何比较这些无价值变量,因此它完全跳过了您的循环。您可以最初给出int a = 0, b = 1值来避免此问题。这样,您确保循环至少运行一次。

在其他方面解释了非初始化变量的情况,所以答案

相关内容

最新更新