Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Ndiar en 28 Julio 2018, 03:22 am



Título: Sumar triangulos en una matriz nxn en C
Publicado por: Ndiar en 28 Julio 2018, 03:22 am
ya tengo la mayoria del codigo listo en C , lo unico q no entiendo es que va en el for de "la suma azul", me esta dando un valor incorrecto de la suma!, porfavor si alguien me explicara.
la idea es esta
tengo una matriz 3x3 de ejemplo =  (1 2 1)
                                                     (2 1 3)
                                                     (3 4 1)

y se quiere sumar los valores 2+1+3=6 que seria "la suma roja" la cual ya tengo lista
pero me da problemas la otra suma que es 3+4+1 que es la "suma azul"  y eso se arregla en los for de las sumas q estan en mi codigo, hace mucho rato que estoy tratando de comprender y no me puedo dar cuenta, necesito ayudaa, q alguien me explique  :(



Código
  1. #include <stdio.h>
  2. int main(){
  3.     int N;
  4.     printf(" Ingrese n : ");
  5.     scanf("%d",&N);
  6.  
  7.    int a[N][N];
  8.  
  9.    int f,c;
  10.  
  11.    for ( f = 0 ; f < N ; f++) {
  12.        for ( c = 0 ; c < N ; c++) {
  13.            scanf("%d",&a[f][c]);
  14.        }
  15.    }    
  16.  
  17.    long int sumaAzul = 0;
  18.  
  19.    for (f = 1 ; f < c ; f++) { //////////////////////////
  20.        for (c = 1 ; c <f ; c++) {
  21.            sumaAzul = sumaAzul + a[f][c];
  22.        }
  23.    }
  24.  
  25.    printf("Suma triangulo AZUL = %ld\n",sumaAzul);
  26.  
  27.    long int sumaRojo = 0;
  28.  
  29.    for (f = 0 ; f < N ; f++) {
  30.        for (c = 1 ; c <= f ; c++) {
  31.            sumaRojo = sumaRojo + a[f][c];
  32.        }
  33.    }
  34.  
  35.    printf("Suma triangulo ROJO = %ld\n",sumaRojo);
  36.  
  37.    if (sumaRojo == sumaAzul) {
  38.        printf("Suma Tr Rojo y Azul son iguales");
  39.    }
  40.    else {
  41.        if (sumaRojo > sumaAzul) {
  42.            printf("Suma Tr Rojo es mayor");
  43.        }
  44.        else {
  45.            printf("Suma Tr Azul es mayor");
  46.        }
  47.    }
  48.  
  49.  
  50.    return 0;
  51. }


Título: Re: Sumar triangulos en una matriz nxn en C
Publicado por: Ndiar en 28 Julio 2018, 19:35 pm
ya encontre la solucion... por si alguien lo necesita era:

Código
  1. long int sumaRojo = 0;
  2.        for (f = 0 ; f < N-1 ; f++) {
  3.        for (c = f+1 ; c < N ; c++) {
  4.            sumaRojo = sumaRojo + a[f][c]; rojo
  5.        }
  6.    }


y la otra era


Código
  1. long int sumaAzul = 0;    
  2.        for (f = 1 ; f < N ; f++) {
  3.        for (c = N-f ; c <N ; c++) {  
  4.            sumaAzul = sumaAzul + a[f][c];
  5.        }
  6.    }