Realizziamo un algoritmo per il calcolo della somma degli elementi appartenenti alla cornice esterna di una matrice in C.

Consideriamo una matrice a[M][N] e definiamo in 100 il numero massimo di righe e di colonne.

Al solito chiediamo di inserire il numero di righe e di colonne della matrice e controlliamo che il valore inserito non sia maggiore di 100 e non sia minore di 1.

Dopo iniziamo ad inserire gli elementi nella matrice utilizzando due cicli, uno più esterno che scandisce mediante la variabile i le righe e un altro più interno che percorre per mezzo della variabile j le colonne.

C base

Fondamenti solidi di programmazione

Impara le basi della programmazione in C in modo semplice, pratico ed efficace. Variabili, cicli, funzioni, logica e algoritmi.

  • 9 ore di corso registrato
  • Più di 50 algoritmi risolti passo passo
  • Livello base
  • 100% online, fruibile quando vuoi

Per calcolare la somma degli elementi della cornice esterna della matrice, basta fare questa considerazione:

Gli elementi della cornice esterna saranno quelli dove:

i è uguale a 0 oppure i è uguale a m-1
e j è uguale a 0 oppure j è uguale a n-1

Quindi facciamo un semplice controllo e se la condizione è vera allora facciamo la somma degli elementi appartenenti alla cornice esterna:

if(i==0 || j==0 || i == m-1 || j==n-1)
somma += a[i][j];

Listato completo dell'algoritmo per il calcolo della somma degli elementi appartenenti alla cornice esterna di una matrice in C

#include<stdio.h>
#define N 100   
#define M 100

int main(){
  int a[M][N],n,m,i,j,somma=0;
	
  do {
    printf("Dammi il numero di righe: ");
    scanf("%d", &m);
  } while ((m>M) || (m<1));
	
  do {
    printf("Dammi il numero di colonne: ");
    scanf("%d", &n);
  } while ((n>N)|| (n<1));
	
 printf("\nInseriamo i dati nella matrice \n");
 for (i=0;i<m;i++)
    for(j=0;j<n;j++) {
       printf("Inserisci elemento di riga %d e colonna %d: ", i, j);
       scanf("%d", &a[i][j]);
     }
	
  printf("\nStampiamo i dati \n");
  for (i=0;i<m;i++) {
     printf("\n");
     for(j=0;j<n;j++) 
	    printf("\t%d", a[i][j]);				
	}	
	
  for(i=0;i<m;i++)
    for(j=0;j<n;j++)
       if(i==0 || j==0 || i == m-1 || j==n-1)
	somma += a[i][j];

 printf("\nsomma = %d",somma);
}

Se volessimo fare la somma degli elementi interni, esclusa la cornice allora basterà creare un'altra variabile:

int somma_i=0, somma_e=0;
.....
for(i=0;i<m;i++)
    for(j=0;j<n;j++)
        if(i==0 || j==0 || i == m-1 || j==n-1)
            somma_e += a[i][j];
        else somma_i+= a[i][j];

printf("\nsomma cornice = %d\n",somma_e);
printf("\nsomma elementi interni= %d\n",somma_i);
....

Alcuni link utili:

Somma elementi cornice esterna

Sommare due matrici

Somma dei numeri di una matrice

Copertina: 50 Algoritmi per imparare C++
📚 Consigliato per te

50 Algoritmi per imparare C++

Struttura dati, puntatori e algoritmi classici in C++, passo passo.

Vedi su Amazon

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Inserire dati in una matrice

Tavola pitagorica in C

Array multidimensionali

Programma sui triangoli in C

Media dei numeri in un array

Array con numeri random

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C

🐍

Vuoi imparare Python da zero?

Scarica la guida gratuita Python in 10 giorni: 10 lezioni pratiche con esempi ed esercizi, direttamente nella tua email.

📥 Scarica gratis il PDF →