嗨,我是一名初级 C 程序员,我正在尝试制作一个过滤器,该过滤器应该根据其他变量来更改变量,但由于某种原因它似乎没有更改变量 g1。我真的很感谢我能得到的任何帮助,因为我现在被困在这里。谢谢
#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;
}
显然我没有足够的细节,所以忽略这个我只是添加一些随机细节。在初等数学中,变量是表示数字的字母字符,称为变量的值,该值可以是任意的、未完全指定的或未知的。
最佳答案
首先,正如 @BLUEPIXY 建议的那样,您应该删除 ;
。
我将更改前两个 sel1 条件以仅设置一个,如下所示:
if (sel1 < 1 || sel1 > 3)
printf("Invalid selection!\n");
然后我将使用 switch
case 和 if
语句:
#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("Car= %d\n", car);
printf("Select a door beetween 1 and 3:\n");
scanf("%d", &sel1);
if (sel1 < 1 || sel1 > 3)
printf("Invalid selection!\n");
switch (sel1)
{
case 1:
if (car == 1)
{
g1 = 2;
g2 = 3;
}
else if (car == 2)
{
g1 = 3;
g2 = 1;
}
else if (car == 3)
{
g1 = 2;
g2 = 1;
}
break;
case 2:
if (car == 1)
{
g1 = 3;
g2 = 2;
}
else if (car == 2)
{
g1 = 1;
g2 = 3;
}
else if (car == 3)
{
g1 = 1;
g2 = 2;
}
break;
case 3:
if (car == 1)
{
g1 = 2;
g2 = 3;
}
else if (car == 2)
{
g1 = 1;
g2 = 3;
}
else if (car == 3)
{
g1 = 1;
g2 = 2;
}
break;
}
printf("Behind door, %d is a goat\n", g1);
getchar();
getchar();
return 0;
}
示例:
关于c - 变量不改变c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46017803/