logo Thecsea.it



Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License



scolastica » esercizi » terza superiore » linguaggio c

Testo dell'esercizio

Verificare se le somme degli elementi delle cornici più esterne di due matrici A(R1 x C1) e B(R2 x C2), entrambe contenenti valori numerici, sono uguali.

Definire le matrici globali
Funzione confronta: passando C1,C2,R1,R2 come parametri, ritorna 1 se le cornici sono uguali, 0 se non lo sono.

mostra soluzione

01/*
02CLAUDIO CARIDNALE 3AI
03Verificare se le somme degli elementi delle cornici più esterne di due matrici A(R1 x C1) e B(R2 x C2), entrambe contenenti valori numerici, sono uguali.
04 
05Definire le matrici globali
06Funzione confronta: passando C1,C2,R1,R2 come parametri, ritorna 1 se le cornici sono uguali, 0 se non lo sono.
07*/
08#include<stdio.h>
09#define MAX 1000
10int confronta(int C1, int C2, int R1, int R2);
11int mat1[MAX][MAX];
12int mat2[MAX][MAX];
13 
14int main(){
15    //dichiarazioni
16    int i,j,C1,C2,R1,R2;
17     
18    //acquisizione lunghezze
19    //prima matrice
20    do{
21        printf("inserire il numero di righe dellla prima matrice : ");
22        scanf("%d",&R1);
23        printf("inserire il numero di colonne dellla prima matrice : ");
24        scanf("%d",&C1);
25    }while(R1<1 || R1>=MAX || C1<1 || C1>=MAX);
26     
27    //seconda matrice
28    do{
29        printf("inserire il numero di righe dellla seconda matrice : ");
30        scanf("%d",&R2);
31        printf("inserire il numero di colonne dellla seconda matrice : ");
32        scanf("%d",&C2);
33    }while(R2<1 || R2>=MAX || C2<1 || C2>=MAX);
34     
35    //acquisizione dati
36     
37    //prima matrice
38    for(i=0;i<R1;i++)
39        for(j=0;j<C1;j++){
40            printf("inserire il valore della riga %d e della colonna %d della prima matrice : ",i+1,j+1);
41            scanf("%d",&mat1[i][j]);
42        }
43     
44    //seconda matrice
45    for(i=0;i<R2;i++)
46        for(j=0;j<C2;j++){
47            printf("inserire il valore della riga %d e della colonna %d della seconda matrice : ",i+1,j+1);
48            scanf("%d",&mat2[i][j]);
49        }
50    //confronto
51    if(confronta(C1,C2,R1,R2))
52        printf("le somme delle due cornici sono uguali\n");
53    else
54        printf("le somme delle due cornici non sono uguali\n");
55     
56}
57 
58int confronta(int C1, int C2, int R1, int R2){
59    //dichiarazioni
60    int i,j,somma1=0,somma2=0;
61     
62    //somme
63     
64    //prima matrice
65    for(i=0;i<R1;i++)
66        for(j=0;j<C1;j++)
67            if(i==0 || j==0 || i==R1-1 || j==C1-1)
68                somma1 += mat1[i][j];
69     
70    //seconda matrice
71    for(i=0;i<R2;i++)
72        for(j=0;j<C2;j++)
73            if(i==0 || j==0 || i==R2-1 || j==C2-1)
74                somma2 += mat2[i][j];
75     
76    //confronto
77    return !(somma1-somma2);
78}

Testi Consigliati:

Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line
C guida alla programmazione: Conoscere lo standard C11 dalle basi del linguaggio alle direttive del preprocessore (Programmare con C Vol. 1)
Programmazione in C

torna



Copyright © 2004-2025 thecsea.it (Claudio Cardinale - cardi@thecsea.it)! Tutti i diritti riservati. - contattaci