elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda, sumatoria de filas y columnas de arreglo en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda, sumatoria de filas y columnas de arreglo en C  (Leído 866 veces)
luis9430

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Ayuda, sumatoria de filas y columnas de arreglo en C
« en: 2 Enero 2019, 03:05 am »

Código:
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;
}


« Última modificación: 2 Enero 2019, 20:32 pm por luis9430 » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 846



Ver Perfil
Re: Ayuda, sumatoria de filas y columnas de arreglo en C
« Respuesta #1 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.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
luis9430

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Ayuda, sumatoria de filas y columnas de arreglo en C
« Respuesta #2 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
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.479



Ver Perfil
Re: Ayuda, sumatoria de filas y columnas de arreglo en C
« Respuesta #3 en: 2 Enero 2019, 21:39 pm »

Dónde dices
Código:
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.
En línea

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
luis9430

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Ayuda, sumatoria de filas y columnas de arreglo en C
« Respuesta #4 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
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 846



Ver Perfil
Re: Ayuda, sumatoria de filas y columnas de arreglo en C
« Respuesta #5 en: 2 Enero 2019, 22:28 pm »

Muestra cómo estás haciendo la suma por columnas para poder ver el error...
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
luis9430

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Ayuda, sumatoria de filas y columnas de arreglo en C
« Respuesta #6 en: 2 Enero 2019, 22:45 pm »

Muestra cómo estás haciendo la suma por columnas para poder ver el error...

Código:
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

Código:
#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;
}

En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 846



Ver Perfil
Re: Ayuda, sumatoria de filas y columnas de arreglo en C
« Respuesta #7 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
  1. for(x=0;x<15;x++){
  2.    acu=0;
  3.    for(y=0;y<11;y++)
  4.        acu=acu+arr[x][y];
  5.    arr[y][15]=acu; // Esto siempre vale arr[11][15]
  6. }

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
  • [11]. Pero la suma de columnas, suma la columna x y lo estás guardando en la posición matriz[11][15]. Entonces tienes dos problemas, primero que siempre sobrescribes la misma posición y segundo que esa posición está fuera de la matriz.

PD: Si quieres sumar una columna y guardar la suma en la última posición de esa columna tienes que dejar la última fila sin valores al igual que la última columna.
Código
  1. const int FILAS = 16, COLUMNAS = 12;
  2. int i, j;
  3. int matriz[FILAS][COLUMNAS];
  4.  
  5. for(i = 0; i < FILAS-1; i++) // no escribimos en la ultima fila
  6.    for(j = 0; j < COLUMNAS-1; j++) // no escribimos en la ultima columna
  7.        matriz[i][j] = valor;
  8.  
  9. // suma de filas
  10. for(i = 0; i < FILAS-1; i++){ // este for recorre las filas desde la 0 hasta la 14 incluida
  11.    suma = 0;
  12.    for(j = 0; j < COLUMNAS-1; j++) // este for recorre las columnas desde la 0 hasta la 10 incluida
  13.        suma += matriz[i][j];
  14.    matriz[i][j] = suma; // guardamos en la posicion [x][11] la suma de la fila x
  15.  
  16. // tambien se puede hacer sin usar una variable suma
  17. for(i = 0; i < FILAS-1; i++){
  18.    matriz[i][COLUMNAS-1] = 0; // ponemos la ultima posicion de la fila a 0...
  19.    for(j = 0; j < COLUMNAS-1; j++)
  20.        matriz[i][COLUMNAS-1] += matriz[i][j]; // ... y vamos acumulando cada posicion de esa fila
  21.  

La parte de sumar las columnas te la dejo a ti para que practiques. Suerte :-X
Pista: Tienes que darle la vuelta a los <for> y guardar en la posición [15]
  • la suma de la columna x... :silbar:
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
luis9430

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Ayuda, sumatoria de filas y columnas de arreglo en C
« Respuesta #8 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?

Código:
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;
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 846



Ver Perfil
Re: Ayuda, sumatoria de filas y columnas de arreglo en C
« Respuesta #9 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.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con mi base de datos acces,datagrid sumar y restar columnas o filas
Programación Visual Basic
angelrobi 1 7,240 Último mensaje 19 Diciembre 2009, 04:05 am
por seba123neo
eliminar filas y columnas en java
Java
sauce19 3 7,108 Último mensaje 4 Septiembre 2011, 19:48 pm
por [Case]
Llenado de Datagridview columnas y filas
.NET (C#, VB.NET, ASP)
mgarcia9483 0 1,072 Último mensaje 19 Agosto 2014, 02:57 am
por mgarcia9483
eliminar filas vacias txt (con columnas)
Scripting
choporrue 6 6,117 Último mensaje 18 Septiembre 2014, 00:13 am
por choporrue
sumar filas y columnas en c#
.NET (C#, VB.NET, ASP)
eddymaltos13 1 5,320 Último mensaje 29 Octubre 2016, 04:44 am
por plizze4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines