我只想要一个用户输入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: %d\n", c);
return 0;
}
一旦我运行该程序,就打印出:“c的答案是:1829030” (请注意,最后一个数字总是随机的)
请帮我运行这个程序。
答案 0 :(得分:0)
未初始化的非静态局部变量的值是不确定的。这意味着该值可以是运行时的任何值。在这种情况下,a,b,c的值是随机的,并且可以根据a,b,c的随机值输入或不输入循环。
尝试 -
int a = 0, b = 0, c;
答案 1 :(得分:0)
您声明变量a, b, c
,但您没有给它们初始值。这意味着它们具有不确定的价值。
在声明a and b
没有给出任何值之后,您继续在while (a <= b)
条件下对它们进行比较。 C
显然不知道如何比较这些无值变量,因此它会完全跳过你的循环。
您最初可以通过提供int a = 0, b = 1
值来避免此问题。
这样你就可以确保循环至少运行一次。