Salve a tutti, sono nuovo del forum e vorrei fare i complimenti a tutti perchè è fatto benissimo 
Vorrei chiedervi un aiuto nella compilazione di questo programma. Allora dovrei fare questo:
realizzare un programma che, mediante opportuni sottoprogrammi, legga da tastiera una matrice di
interi con segno di dimensioni scelte dall'utente, restituendo la somma degli elementi della prima e
dell'ultima riga e la differenza tra la prima colonna e l'ultima, la stampi e, qualora la somma tra la
somma e la differenza sia diversa da 0, sposti gli elementi della stessa in posizione tale che la
matrice risulti ruotata di 90 gradi in senso orario, e la stampi.
Io ho scritto questo codice:
codice:
#include <iostream>
using namespace std;
int lmatrix(int signed *m,int r,int c);
int secmatrix(int signed *m,int r,int c,int signed *m2,int r2,int c2);
int main()
{
int r;int c;
cout<<"Inserisci numero di righe"<<endl;
cin>>r;
cout<<"Inserisci numero di colonne"<<endl;
cin>>c;
int signed m[r][c];
int res=lmatrix(&m[0][0],r,c);
if(res!=0)
{
int r2=r;
int c2=c;
int signed m2[r2][c2];
secmatrix(&m[0][0],r,c,&m2[0][0],r2,c2);
}else
{
cout<<"La somma è zero"<<endl;
}
return 0;
}
int lmatrix(int signed *m,int r,int c)
{
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
cout<<"Inserisci elementi della matrice "<<endl;
cin>>*(m+i*c+j);
}cout<<endl;
}
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
cout<<*(m+i*c+j);
}cout<<endl;
}
int somma=0;int differenza=0;
for(int k=0;k<r;k++)
{
somma+=*(m+0*c+k)+*(m+(r-1)*c+k);
}for(int z=0;z<c;z++)
{
differenza-=*(m+z*c+0)-*(m+z*c+(c-1));
}
cout<<"La somma è "<<somma<<endl;
cout<<"La differenza è "<<differenza<<endl;
int res=somma+differenza;
return res;
}
int secmatrix(int signed *m,int r,int c,int signed *m2,int r2,int c2)
{
int temp1;int temp2;int temp3;int temp4;
for(int k=0;k<c;k++)
{
temp1=*(m+0*c+k); //prima riga
temp2=*(m+k*c+(c-1)); //ultima colonna
temp3=*(m+(r-1)*c+k); //ultima riga
temp4=*(m+(r-1)*c+k); //ultima riga
*(m+0*c+k)=*(m+k*c+0);
*(m+k*c+(c-1))=temp1;
*(m+(r-1)*c+k)=temp2;
*(m+k*c+0)=temp1;
}for(int i=0;i<r2;i++)
{
for(int j=0;j<c2;j++)
{
cout<<*(m2+i*c2+j);
}cout<<endl;
}
return 0;
}
cosi facendo il programam funziona a metà cioè, riesce a fare tutti i primi punti ma quando la somma della differenza e somma e diversa da zero e dovrebbe ruotare di 90 gradi escono fuori valori strani.
Vorrei chiedervi qualcuno può darmi una mano per capire dove sta l'errore???grazie a tutti in anticipo per la risposta.