No non hai risolto il problema , ma avresti tutte le informazione per risolverlo .
1) dal quel poco che conosco sul linguaggio c , non puoi copiare una stringa
con un semplice = citta[i]= citta[j]; , ma devi usare la funzione strcpy()
2) tu hai dichiarato le variabili contatore i e j globalmente , funzione ma non è necessario
potrebbero essere locali e passate come parametro a una funzione
3) la prima riga della matrice temp non contiene le temperature della prima riga
della matrice citta
4) non devi copiare una temperatura ma 4
una possibile soluzione
prova e se vuoi fammi sapere se funziona o vi sono errori ,codice:void scambio(char citta[][15],int temperatura[][4],int i ,int j){ /* visto che nella prima riga della matrice temp non ci sono le temperature ma gli orari , le temperature saranno in i+1 e j+1 una posizione avanti */ char string[20]; int temp[4],k=0; strcpy(string,citta[i]);//copio il nome citta i for(k=0;k<4;k++) //copio le temperature i temp[k]=temperatura[i+1][k]; strcpy( citta[i],citta[j]); for(k=0;k<4;k++) temperatura[i+1][k]=temperatura[j+1][k]; strcpy(citta[j], string); for(k=0;k<4;k++) temperatura[j+1][k]=temp[k]; return; }
comunque mi pare di capire che hai qualche lacuna , e dovresti approfondire meglio
array e matrici e forse altro ....