gpt4 book ai didi

更改函数中的数组值

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:27 25 4
gpt4 key购买 nike

好的,我有一个 10x10 阵列,需要翻转并打印。我制作此功能就是为了做到这一点

void flip(int d[][10], int rows)
{
int temp, x, y, cols;

cols=rows;

for(x=0; x<rows; x++)
{
for(y=0; y<cols; y++)
{
temp=d[x][y];
d[x][y]=d[y][x];
d[y][x]=temp
}
}
}

现在我知道数组是通过引用传递的,但我还在某处读到数组本身充当指针,因此您不必使用看起来正确的指针表示法。我的问题是,当我在翻转后尝试打印时,它不会打印翻转后的数组,而是打印出原始数组,这让我认为它没有翻转原始数组。

这里是打印函数。

void printArray(int d[][10])
{
int rows, cols,x,y;

rows = sizeof(d[0])/sizeof(d[0][0]);

cols = rows;

for(x=0;x<rows; x++)
{
for(y=0;y<cols;y++)
printf("%2d ",d[x][y]);
printf("\n");
}
}

奇怪的是,如果我将 temp 更改为数字 10 之类的“硬”值,那么它确实会打印出一个 10x10 数组,其中一半是 10。我不知道为什么简单的交换不起作用:(

最佳答案

据我所知,“翻转”是指“转置”...

此外,如果您手动计算出代码,您的代码可以工作,但需要两次 - 即,您会得到原始矩阵。您可以尝试将内部 for 循环更改为从 x 开始,而不是从零开始。

关于更改函数中的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17376359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com