Salve ragazzi!! Vi posto questo codice, data una matrice N*N dovrebbe sommare gli elem. della diagonale principale e secondaria e salvare tali somme all'interno di un vettore di cardinalità N!! La somma degli elm. della diagonale principale viene eseguita mentre quella della diagonale secondaria no!! Potreste darmi un piccolo aiuto??
#include<iostream>
using std::cout;
using std::cin;
#include<cstdlib>
#include<iomanip>
using std::setw;
void Leggi_mat( int *a, int N){
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
cout<<"\nInserisci elemento a["<<i<<"] ["<<j<<"] : ";
cin>>a[i*N+j];
}
}
cout<<"\nLa matrice caricata vale: \n";
for(int i=0;i<N;i++){
for(int j=0;j<N;j++)
cout<<setw(5)<<a[i*N+j];
cout<<"\n";
}
return;
}
void Somma_vet(int *a,int *vettore, int N){
for(int i=0;i<N;i++){
for(int nc=0;nc<N;nc++){
if(i==nc){
vettore[nc]+=a[i*N+nc];
}
else if(i==N-1-nc){
vettore[nc]+=a[i*N-1+nc];
}
}
}
cout<<"Il vettore vale: \n";
for(int i=0;i<N;i++){
cout<<setw(5)<<vettore[i];
}
return;
}
int main() {
int N;
cout<<"Digita numero di righe ecolonne: ";
cin>>N;
int *a1;
a1=(int*)malloc(N*N*sizeof(int));
Leggi_mat(a1,N);
int *vettore;
vettore=(int*)calloc(N,sizeof(int));
Somma_vet(a1,vettore,N);
free(a1);
free(vettore);
}