我只是想要一个让用户输入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
值来避免此问题。这样,您确保循环至少运行一次。
在其他方面解释了非初始化变量的情况,所以答案