Transponowanie tablicy dwuwymiarowej - gdzie jest błąd?

0

Kompilator wyświetla mi następujący błąd:

[Error] invalide types 'int[int]' for array subscript

we funkcji mającej transponować tablicę dwuwymiarową.
W linijce gdzie funkcja zamienia wartości w tablicy;

tmp=T[j][i] ;
T[j][i]=T[i][j];
T[i][j]=tmp;
#include<stdio.h>

void zamien(int T, int m, int n){
int i,j,tmp;
	
	for(i=0;i<m;i++){
		
		for(j=0;j<n;j++)
		tmp=T[j][i];
		T[j][i]=T[i][j];
		T[i][j]=tmp;
		
		}

}

int main(){
	int tab[3][3]={{12,15,10},{2,13,20},{2,4,8}};
	int i,j;
	int m=3,n=3;
	
	printf("Macierz przed transponowaniem:\n");
	
	for(i=0;i<m;i++){
	
		for(j=0;j<n;j++)
		printf("%d ",tab[i][j]);
		printf("\n");
	
	}
	zamien(tab, m, n);
	
		printf("Macierz po transponowaniu:\n");
	
	for(i=0;i<m;i++){
	
		for(j=0;j<n;j++)
		printf("%d ",tab[i][j]);
		printf("\n");
	
	}
	

return 0;
}
2

Przecież T jest intem, dlaczego więc próbujesz ją wykorzystać jak gdyby reprezentowała tablicę?

Poza tym zawsze stawiaj klamry oraz formatuj kod należycie.

1
for(i=0;i<m;i++){

    for(j=0;j<n;j++)
    tmp=T[j][i];
    T[j][i]=T[i][j];
    T[i][j]=tmp;

    }

A co to? Jeśli to miał być swap w zagnieżdżonej pętli to brakuje grupowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1