【发布时间】:2014-10-30 17:56:44
【问题描述】:
所以我的问题是我试图得到我在hand1[o]之后得到的数组(从第一个卡片数组[]中随机抽取5个数字。进入开关以检测它是否是同花。 例如如果hand1[1]的开关-hand1[0] = 1;手1[2] - 手[1] = 1...等 printf("从 1~5 刷新").
但是,tbh,我什至不确定在 switch() 或 void corrida() 的括号内放什么。 我尝试放置 hand1[] 或 hand1[],但它说 hand1 不是一个常数值。
附:我知道有些东西是西班牙语(因为这是西班牙语课)
void baraja();
void jugadores();
void jugadores(k);
int cards[52] = { 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13 };
int hand1[5];
int x, y;
int l, k, z;
int main()
{
srand(time(0));
baraja();
jugadores();
}
void baraja()
{
for (l = 1; l <= 52; l++)
{
x = rand() % 52;
y = rand() % 52;
int temp = cards[x];
cards[x] = cards[y];
cards[y] = temp;
}
printf("La baraja revuelta es:\n");
for (k = 0; k <= 51; k++)
{
printf("%d ", cards[k]);
}
printf("\n\n");
}
void jugadores(k)
{
int o, n = 5;
printf("Tus cartas son:\n");
for (o = 0; o <= 4; o++)
{
k = rand() % 52;
printf("%d ", cards[k]);
hand1[o] = cards[k];
}
printf("\n\n");
for (o = 0; o < n ; o++)
{
for (z = 1; z < (n - o); z++)
if (hand1[z - 1] > hand1[z])
{
int temp = hand1[z - 1];
hand1[z - 1] = hand1[z];
hand1[z] = temp;
}
}
printf("Tus cartas en orden incremental son:\n");
for (o = 0; o <= 4; o++)
{
printf("%d ", hand1[o]);
}
printf("\n\n");
}
void corrida()
{
switch (hand1)
{
case (hand1[1] - hand1[0] = 1) :
}
}
【问题讨论】:
-
我不认为
switch是这里的正确选择。 -
你知道有什么功能可以帮助我吗?问题是我开始了编程基础,所以我只学习了 if 和 switch for "conditions"/
-
case标签需要有常数值case (hand1[1] - hand1[0] = 1) :没有常数值。除了switch (hand1)没有意义之外,hand1的值永远不会改变。 -
是的,这是我得到的错误,是的,关于那个开关 (hand1) 我确实意识到它不正确。 tbh 我不是 100% 确定在 switch 的括号内和 switch 之外放什么
-
为什么这个标签是 C++?这是 C。
标签: c++ arrays switch-statement