0
好吧,我有一個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");
}
}
奇怪的事情是,如果我改變溫度到像10號「硬」的值,則它打印出來和他們在一起10S的一半10×10陣列。我在這裏損失,爲什麼簡單的交換不工作:(
是的,我確實意味着轉置,我會試試 是的,它的工作謝謝你:) –