#include <stdio.h>
#define MAX 1000

void le_matriz(double M[][MAX], int n){
    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++){
            scanf("%lf", &M[i][j]);
        }
    }
}

double calcula_diagonal(double M[][MAX], int n){
    double sum_diagonal = 0;
    for(int i = 0; i < n; i++){
        sum_diagonal += M[i][i]; 
    }
    return sum_diagonal;
}

double media_diagonal_sup(double M[][MAX], int n){
    double sum_diagonal = 0, valores = 0;
    for(int i = 0; i < n; i++){
        for(int j = i + 1; j < n; i++){
            sum_diagonal += M[i][j];
            valores += 1;
        }
    }
    return sum_diagonal / valores;
}

int main() {
    int n;
    scanf("%d", &n);

    char c;
    
    getchar();
    scanf("%c", &c);

    double M[MAX][MAX];
    le_matriz(M, n);

    if(c == 'S'){
        printf("%.2lf", calcula_diagonal(M, n));    
    } 
    if(c == 'M'){
        printf("%.2lf", media_diagonal_sup(M, n));
    }
    
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: