Advertisement
tegusta

somma diagonali

Feb 13th, 2012
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.51 KB | None | 0 0
  1. #include <iostream>
  2. #define ROWS 10
  3. #define COLS 10
  4. using namespace std;
  5.  
  6.  
  7. // OV Nome dell'autore.
  8.  
  9. void autore(void) {
  10. cout << "Questo programma e` stato scritto da Massimiliano Scia.\n";
  11. }//autore
  12.  
  13.  
  14. // OV Messaggio di richiesta.
  15.  
  16. void tasto(void) {
  17. fflush(stdin);
  18. cout << "\n\nPremere Invio per continuare.";
  19. getchar();
  20. }//tasto
  21.  
  22.  
  23. /* INPUT */
  24. void leggi(int a[][COLS], int *n){
  25.      do{
  26.          cout<<"\nPer la somma delle diagonali necessito di un array quadrato.";
  27.          cout<<"\nInserisci il numero di righe e colonne: ";
  28.          cin>>*n;
  29.          if(*n<1 || *n>ROWS)
  30.              cout<<"\nErrore nell'inserimento della grandezza..\n";
  31.      }//do
  32.      while(*n<1 || *n>ROWS);
  33.      cout<<"\n";
  34.      for(int i=0;i<*n;i++)
  35.          for(int j=0;j<*n;j++){
  36.              cout<<"Valore di a["<<i<<"]["<<j<<"]: ";
  37.              cin>>a[i][j];
  38.      }//for    
  39. }//leggi
  40.  
  41.  
  42. /* ELABORAZIONE */
  43. void sommaDiagonale1(int a[][COLS], int n, int *somma, int c[], int *f){
  44.     (*somma)=0;
  45.     (*f)=0;
  46.     for(int i=0;i<n;i++)
  47.         for(int j=0;j<n;j++)
  48.             if(i==j){
  49.                 (*somma)+=a[i][j];
  50.                 c[*f]=a[i][j];
  51.                 (*f)++;
  52.             }//f
  53. }//sommaDiagonale1
  54.  
  55. void sommaDiagonale2(int a[][COLS], int n, int *somma2, int d[], int *g){
  56.     (*somma2)=0;
  57.     (*g)=0;
  58.     for(int i=0;i<n;i++)
  59.         for(int j=0;j<n;j++)
  60.             if(i==j){
  61.                 (*somma2)+=a[i][n-j-1];
  62.                 d[*g]=a[i][n-j-1];
  63.                 (*g)++;
  64.             }//if
  65. }//sommaDiagonale2
  66.  
  67. /* OUTPUT */
  68. void stampa(int a[][COLS], int n, int c[], int f, int somma, int d[], int g, int somma2){
  69.      int k=0;
  70.      cout<<"\n\nL'array e`:\n";
  71.      for(int i=0;i<n;i++)
  72.          for(int j=0;j<n;j++){
  73.              k++;
  74.              cout<<a[i][j]<<" ";
  75.              if(k==n){
  76.                  cout<<"\n";
  77.                  k=0;
  78.              }//if
  79.          }//for-j
  80.     cout<<"\nLa somma della diagonale principale e`: "<<somma;
  81.     cout<<"\nE i suoi elementi sono: ";
  82.     for(int i=0;i<f;i++)
  83.         cout<<c[i]<<" ";
  84.     cout<<"\nLa somma della diagonale secondaria e`: "<<somma2;
  85.     cout<<"\nE i suoi elementi sono: ";
  86.     for(int i=0;i<g;i++)
  87.         cout<<d[i]<<" ";
  88.     cout<<"\nLa somma totale e`: "<<somma+somma2;
  89. }//stampa
  90.  
  91.  
  92. int main (void){
  93. int a[ROWS][COLS],n,somma,somma2,f,g,c[COLS],d[COLS];
  94. autore();
  95. leggi(a,&n);
  96. sommaDiagonale1(a,n,&somma,c,&f);
  97. sommaDiagonale2(a,n,&somma2,d,&g);
  98. stampa(a,n,c,f,somma,d,g,somma2);
  99. tasto();
  100. return 0;
  101. }//main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement