嗨,我是一個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)) –