Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: luis9430 en 2 Enero 2019, 03:05 AM

Título: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: luis9430 en 2 Enero 2019, 03:05 AM
tengo un arreglo bidimensional con la funcion rand en el que suma el total de filas pero no se como hacer para que tambien sume el total de columnas

en la fila 16 es donde quiero agregar el total de cada columna

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int arr[16][12],x,y,acu;



main ()

{



printf("\n");
printf("vendedor vento  Jetta   Polo   Teramont Beetle  Golf    Gol    Passat    Up!   Tiguan  Touareg  TOTAL ");
printf("\n");

srand(time(NULL));
for(x=0;x<15;x++)
for(y=0;y<12;y++)

arr[x][y]=1+rand()%9;


for(x=0;x<15;x++){

   acu=0;
for(y=0;y<12;y++)
acu=acu+arr[x][y];
arr[x][11]=acu;
   }



for(x=0;x<15;x++){
printf("\n");

for(y=0;y<12;y++)
printf("\t$%d", arr[x][y]);

}
getchar();
return 0;
}
Título: Re: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: K-YreX en 2 Enero 2019, 18:07 PM
Lo primero de todo coloca tu código entre etiquetas GeSHi, ya que como puedes comprobar tú mismo ese código es ilegible. Y también hay alguna instrucción en dos líneas, corrige eso para que se pueda entender mejor.

Para sumar cada columna tienes que pensar la relación que tiene una columna (la segunda coordenada es siempre la misma). Entonces dos bucles anidados, el exterior se mueve por las columnas y el interior por las filas, y una vez que acaba el bucle interior y se ha ido sumando cada valor, se almacena al final de esa columna. Suerte :-X

PD: No uses la librería <conio.h> ya que no es estándar. Sólo la necesitas para usar <getch()>. Puedes sustituir <getch()> por <getchar()> y así ya no necesitas incluir esa librería.
Título: Re: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: luis9430 en 2 Enero 2019, 20:36 PM
ya lo modifique, soy nuevo en esto, intente realizarlo y al colocarlo me da 0 la suma de cada columna
Título: Re: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: MAFUS en 2 Enero 2019, 21:39 PM
Dónde dices for(y=0;y<12;y++)
  acu=acu+arr[x][y];

Debe decir y<11 porque sino también sumarán la propia suma.

Para la suma de las columnas es similar pero en vez de moverte primero por filas y dentro de ellas por columnas, primero debes moverte por columnas y dentro de ellas por filas.
Título: Re: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: luis9430 en 2 Enero 2019, 22:23 PM
Gracias! , pero en columnas he intentado de todo y me sigue saliendo 0 en la suma de todas ellas
Título: Re: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: K-YreX en 2 Enero 2019, 22:28 PM
Muestra cómo estás haciendo la suma por columnas para poder ver el error...
Título: Re: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: luis9430 en 2 Enero 2019, 22:45 PM
Cita de: YreX-DwX en  2 Enero 2019, 22:28 PM
Muestra cómo estás haciendo la suma por columnas para poder ver el error...


este seria para la suma de columnas , lo que busco es que en la fila 16 salga la sumatoria

for(x=0;x<15;x++){

    acu=0;
for(y=0;y<11;y++)
acu=acu+arr[x][y];
arr[y][15]=acu;
              }

al final me queda asi


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>

int arr[16][12],x,y,acu,i,acu1;
int maximo[16];


main ()

{



printf("\n");
printf("vendedor vento  Jetta   Polo   Teramont Beetle  Golf    Gol    Passat    Up!   Tiguan  Touareg  TOTAL ");
printf("\n");

srand(time(NULL));
for(x=0;x<15;x++)

for(y=0;y<11;y++)



arr[x][y]=1+rand()%9;

//suma de filas
for(x=0;x<15;x++){

    acu=0;
for(y=0;y<11;y++)
acu=acu+arr[x][y];
arr[x][11]=acu;

}


//suma de columnas
for(x=0;x<15;x++){

    acu=0;
for(y=0;y<11;y++)
acu=acu+arr[x][y];
arr[y][15]=acu;

}



//impresion
for(x=0;x<16;x++){
printf("\n");

for(y=0;y<12;y++)
printf("\t$%d", arr[x][y]);
                             
}


getch();
return 0;
}


Título: Re: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: K-YreX en 2 Enero 2019, 23:23 PM
La suma de columnas está mal porque si te fijas tienes una matriz de 12 columnas y tú estás intentando guardar la suma en la columna 15...
Código (cpp) [Seleccionar]

for(x=0;x<15;x++){
    acu=0;
    for(y=0;y<11;y++)
        acu=acu+arr[x][y];
    arr[y][15]=acu; // Esto siempre vale arr[11][15]
}


Tienes que pensar bien la relación de los índices. Por ejemplo la suma de filas lo que hace es sumar la fila x y lo guarda en la posición matriz
Título: Re: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: luis9430 en 2 Enero 2019, 23:41 PM
muchisimas gracias esta claro lo que hay que hacer  ;D Solo una ultima duda , " = valor "
que se supone que seria?


for(i = 0; i < FILAS-1; i++) // no escribimos en la ultima fila
    for(j = 0; j < COLUMNAS-1; j++) // no escribimos en la ultima columna
        matriz[i][j] = valor;

Título: Re: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: K-YreX en 2 Enero 2019, 23:44 PM
<valor> es el número que vayas a guardar, en tu caso un número aleatorio. He puesto <valor> para no escribirlo todo.
Título: Re: Ayuda, sumatoria de filas y columnas de arreglo en C
Publicado por: luis9430 en 2 Enero 2019, 23:48 PM
Mil gracias por tu ayuda , no se si esto sea muy basico pero me has salvado