Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
6年前关闭。
Improve this question
我在将C++代码转换为C时遇到问题。我尝试了很多可能性,但没有任何效果。怎么解决呢?这是我的代码:
这就是我在C++中使用它的方式:
这就是我所说的:
这样,我得到如下输出:
但是,当我尝试在C编译器中运行此程序时,必须从第一个函数中删除&,因此它看起来像这样:
我得到这样的输出:
并这样称呼它:
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
6年前关闭。
Improve this question
我在将C++代码转换为C时遇到问题。我尝试了很多可能性,但没有任何效果。怎么解决呢?这是我的代码:
这就是我在C++中使用它的方式:
void Posun(int &x, int &y) //posun gulicky
{
if (y == 1)
x != 10 ? x++ : y++;
else if (y == 11)
x != 1 ? x-- : y--;
else if (x == 1)
y != 1 ? y-- : x++;
else
y != 11 ? y++ : x--;
}
这就是我所说的:
int Roll(int **grid, int riadky, int stlpce)//roll, vracia padnute cislo
{
srand(time(NULL));
int x = (rand() % 10 + 1) > 5 ? 10 : 1;
int y = rand() % 11 + 1;
int o = rand() % 50 + 50;
for (int i = 0; i < o; i++)
{
//Clr();
Posun(&x,&y);
//VypisGrid(grid, riadky, stlpce, x, y);
printf("%d,%d", x, y);
Sleep(100);
}
if (x == 1)
return y > 1 && y < 11 ? grid[y - 1][x - 1] : grid[y - 1][x];
else if (x == 10)
return y > 1 && y < 11 ? grid[y - 1][x + 1] : grid[y - 1][x];
if (y == 1 || y == 11)
return grid[y - 1][x];
}
这样,我得到如下输出:
410,510,610,710,810,910,1010,119,118,117 ....
但是,当我尝试在C编译器中运行此程序时,必须从第一个函数中删除&,因此它看起来像这样:
void Posun(int x, int y)
{
我得到这样的输出:
510,510,510,510,510,510,510
-这只是最终位置。 最佳答案
您在C中没有引用,您必须使用如下指针:
void Posun(int* x, int* y) {
if (*y == 1)
*x != 10 ? (*x)++ : (*y)++;
else if (*y == 11)
*x != 1 ? (*x)-- : (*y)--;
else if (*x == 1)
*y != 1 ? (*y)-- : (*x)++;
else
*y != 11 ? (*y)++ : (*x)--;
}
并这样称呼它:
Posun(&x, &y);
07-28 03:23