Итак, у меня есть массив 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, то это распечатать массив 10x10 с половины из них 10s. Я в недоумении здесь, почему простой подкачка не работает :(
Да, я действительно имею в виду транспонирование, и я дам вам попробовать Да, это сработало спасибо :) –