嗨,我是一个begginer c程序员,我试图做一个过滤器应该改变一个变量取决于其他变量,但它似乎并没有改变变量g1出于某种原因。我真的很喜欢我能得到的任何帮助,因为我现在被困在这里。谢谢变量不变c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int car;
int g1;
int g2;
int sel1;
unsigned int iseed = (unsigned int)time(NULL);
srand (iseed);
g1 = 0;
car = rand() % 3 + 1;
printf("%d\n",car);
printf("select a door beetween 1 and 3\n ");
scanf ("%d",&sel1);
if (sel1 < 0)
{
printf("Invalid selection!\n");
return 0;
}
if (sel1 > 3)
{
printf("Invalid selection!\n");
return 0;
}
if (sel1 == 1)
{
if(car == 1)
{
g1 = 2;
g2 = 3;
}
if (car == 2);
{
g1 = 3;
g2 = 1;
}
if (car == 3);
{
g1 = 2;
g2 = 1;
}
}
if (sel1 == 2)
{
if(car == 1)
{
g1 = 3;
g2 = 2;
}
if (car == 2);
{
g1 = 1;
g2 = 3;
}
if (car == 3);
{
g1 = 1;
g2 = 2;
}
}
if (sel1 == 3)
{
if(car == 1)
{
g1 = 2;
g2 = 3;
}
if (car == 2);
{
g1 = 1;
g2 = 3;
}
if (car == 3);
{
g1 = 1;
g2 = 2;
}
}
printf("Behind door %d is a goat\n",g1);
return 0;
}
Appetintly我没有足够的细节,所以忽略这个即时通讯只是增加一些随机的细节。在初等数学中,变量是表示数字的字母字符,称为变量的值,可以是任意的,不完全指定的或未知的。
'if(car == 2);':Remove ';' – BLUEPIXY
一般来说,调试会很好。使用Visual Studio,在那里很容易。如果你在linux上,使用gdb,但对于初学者来说这很难。 (尽管如此。)但是,你总是可以分散'printf'并在这么小的一段代码中看到控制流。 (bluepix是对的,你明白为什么吗?) –
程序是*不是数学世界。它有一些*改变*内部状态。阅读关于[语义](https://en.wikipedia.org/wiki/Semantics_(computer_science)) –