Esercizio 13 Gennaio

« Older   Newer »
 
  Share  
.
  1.     Like  
     
    .
    Avatar

    Manager

    Group
    User+
    Posts
    20,990
    Reputation
    +414

    Status
    Anonymous
    #include <stdio.h>
    #include <stdlib.h>

    typedef struct {
    int **valori;
    int riga;
    int col;
    } tabella;

    int leggi_riga(tabella t);
    int leggi_col(tabella t);
    int leggi_valore(tabella *t, int riga, int col);
    void scrivi_riga(tabella *t, int valore);
    void scrivi_col(tabella *t, int valore);
    void scrivi_valore(tabella *t, int riga, int col, int valore);
    int somma_diagonale_principale(tabella t);
    int somma_diagonale_sec(tabella t);
    int prodotto_diagonali(int n, int m);
    void popola_tabella(tabella *t);
    void stampa_tabella(tabella *t);

    int main() {
    tabella tab;
    int dim;
    int somma1;
    int somma2;
    int prodotto;

    printf("Inserisci dimensioni tabella: ");
    scanf("%d", &dim);
    scrivi_riga(&tab, dim);
    scrivi_col(&tab, dim);

    tab.valori = (int**) malloc(sizeof(int*)*leggi_col(tab));
    int i = 0;
    while (i < leggi_col(tab)) {
    *(tab.valori+i) = (int*) malloc(sizeof(int)*leggi_riga(tab));
    i++;
    }

    popola_tabella(&tab);
    stampa_tabella(&tab);

    somma1 = somma_diagonale_principale(tab);
    somma2 = somma_diagonale_sec(tab);
    prodotto = prodotto_diagonali(somma1, somma2);
    printf("Somma diagonale principale: %d\n", somma1);
    printf("Somma diagonale secondaria: %d\n", somma2);
    printf("Prodotto tra le somme delle diagonali: %d\n", prodotto);

    system("pause");
    }

    int leggi_riga(tabella t) {
    int a = t.riga;
    return a;
    }

    int leggi_col(tabella t) {
    int a = t.col;
    return a;
    }

    int leggi_valore(tabella *t, int riga, int col) {
    int a = t->valori[riga][col];
    return a;
    }

    void scrivi_riga(tabella *t, int valore) {
    t->riga = valore;
    }

    void scrivi_col(tabella *t, int valore) {
    t->col = valore;
    }

    void scrivi_valore(tabella *t, int riga, int col, int valore) {
    t->valori[riga][col] = valore;
    }

    int somma_diagonale_principale(tabella t) {
    int i = 0;
    int tmp = 0;
    while (i < leggi_riga(t)) {
    tmp += leggi_valore(&t, i, i);
    i++;
    }
    return tmp;
    }

    int somma_diagonale_sec(tabella t) {
    int i = 0;
    int tmp = 0;
    int col = leggi_riga(t)-1;
    while (i < leggi_riga(t)) {
    tmp += leggi_valore(&t, i, col-i);
    i++;
    }
    return tmp;
    }

    int prodotto_diagonali(int n, int m) {
    int valore = n * m;
    return valore;
    }

    void popola_tabella(tabella *t) {
    int scan;
    int x = 0;
    while (x < leggi_riga(*t)) {
    int y = 0;
    while (y < leggi_riga(*t)) {
    printf("Inserisci valore in riga %d, colonna %d: ", x, y);
    scanf("%d", &scan);
    scrivi_valore(t, x, y, scan);
    y++;
    }
    x++;
    }
    }

    void stampa_tabella(tabella *t) {
    int z = 0;
    while (z < leggi_riga(*t)) {
    int k = 0;
    while (k < leggi_riga(*t)) {
    printf(" %d ", leggi_valore(t, z, k));
    k++;
    }
    z++;
    printf("\n");
    }
    }
     
    .
  2.     Like  
     
    .
    Avatar

    Manager

    Group
    User+
    Posts
    20,990
    Reputation
    +414

    Status
    Anonymous
    int parentesi(char str[], int lungh){
    int bool;
    int pAperta;
    int i=0;

    pAperta=0;
    while(i < lungh){
    if(str[i] == '('){
    pAperta++;
    } else if(str[i] == ')'){
    pAperta--;
    }
    i++;
    }
    if(pAperta == 0){
    bool=1;
    }else{
    bool=0;
    }
    return bool;
    }
     
    .
1 replies since 14/1/2022, 16:32   14 views
  Share  
.