Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] solo suma primera linea

Estas en el tema de solo suma primera linea en el foro de C/C++ en Foros del Web. Código: #include <iostream> using namespace std; int main(){ const int num = 5; int tabla[num][num]; int i; int j; //const int repe = 5; int ...
  #1 (permalink)  
Antiguo 04/06/2014, 16:50
Avatar de jscmanuel  
Fecha de Ingreso: mayo-2014
Mensajes: 29
Antigüedad: 10 años
Puntos: 0
Pregunta solo suma primera linea

Código:
#include <iostream>
using namespace std;

int main(){
	
	const int num = 5;
	int tabla[num][num];
	int i;
	int j;
	//const int repe = 5;
	int sum=0;
	//int suma[repe];
	int fila = 1;
	//int sumacu = 0;
	
		//Insercion de Datos De Array
		for(i=0;i<num;i++){
			for(j=0;j<num;j++){
			cout<<"Ingrese Valores ["<<i+1<<"],["<<j+1<<"]";
			cin >> tabla[i][j];
		}
		}
		//Muestra de Tabla De Array
		cout<<"La Tabla de Arrays: "<<endl;;
		for (i = 0; i < num; i++) {
			for ( j = 0; j < num; j++) {
				cout<< tabla[i][j];
				}
				cout<<"\n";
				} 
								
			//Suma de Lineas de Array		
				for(j=0;j<num;j++){	
					for(i=0;i<num;i++){
				sum = sum + tabla[0][j++];//suma solo la primera linea ,
				
				}
				for(i=0;i<num;i++){
				cout<<"Fila "<<fila++<<" Resultado: "<<sum<<endl;
//el resultado de la suma es el mismo para toda las lineas
//aunque ponga distintos datos.
			}
				
			}	
					
		return 0;		
	}
Aun no entiendo bien el tema de array, no se como hacerlos ya, e llegado a que sume la primera linea pero no las siguientes y me imprime en las 5 lineas de resultado el mismo para todos.Necesito que alguien me esplique que me falta . Gracias de ante mano un saludo.
  #2 (permalink)  
Antiguo 04/06/2014, 21:18
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: solo suma primera linea

Lo que no he entendido es si sumar todas las lineas entre ellas o sumar todo lo que haya en una linea.
te lo hice el ultimo de sumar todo lo que hay en una linea y pasar a la siguiente.
Si no es eso dime y te arreglo.
Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5.  
  6.     const int num = 5;
  7.     int i;
  8.     int j;
  9.     int sum = 0;
  10.     int fila = 1;
  11.    
  12.     //Lo pongo manual por que me cansa menos que hacerlo manual. Luego le vuelves a poner tu metodo de entrado por teclado ;)
  13.     int tabla[num][num] = {
  14.         {10, 10, 10, 10, 10},    //10*5 == 50  en la primera linea
  15.         {20, 20, 20, 20, 20},    //20*5 == 100 en la segunda linea
  16.         {30, 30, 30, 30, 30},    //30*5 == 150 en la tercera linea
  17.         {40, 40, 40, 40, 40},    //40*5 == 200 en la  cuarta linea
  18.         {50, 50, 50, 50, 50}     //30*5 == 250 en la  quinta linea
  19.     };                           //si no imprimes esos valores esta mal
  20.    
  21.     //Suma de Lineas de Array
  22.     for ( i = 0; i < num; i++ ) {
  23.         sum = 0;                      // Si vas a usar la misma variable para mostrar el resultado de cada linea mejor la inicializa antes para que no le influya restos de numeros anteriores.
  24.         for ( j = 0; j < num; j++ ) {
  25.             sum = sum + tabla[i][j];  // linea es i y columna la j. entramos en una linea y sumamos todos sus columnas
  26.             cout << sum <<endl;
  27.         }
  28.         cout << "Fila " << i << " Resultado: " << sum << endl; // no necesitas mostrar la suma 5 veces en el bucle interir sino una sola por linea en el exterior ;)
  29.     }
  30.    
  31.     return 0;
  32. }
  #3 (permalink)  
Antiguo 05/06/2014, 00:49
Avatar de jscmanuel  
Fecha de Ingreso: mayo-2014
Mensajes: 29
Antigüedad: 10 años
Puntos: 0
Respuesta: solo suma primera linea

Código:
#include <iostream>
using namespace std;
 
int main() {
 
    const int num = 5;
    int i;
    int j;
    int sum = 0;
    int fila = 1;//Esta variable no se usa en tu metodo
   
    //Lo pongo manual por que me cansa menos que hacerlo manual. Luego le vuelves a poner tu metodo de entrado por teclado ;)
    int tabla[num][num] = {
        {1,2,3,4,5},         //      == 15 en la primera linea
        {2, 2, 2, 2, 2},    //2*5 == 10 en la segunda linea
        {3, 3, 3, 3, 3},    //3*5 == 15 en la tercera linea
        {4, 4, 4, 4, 4},    //4*5 == 20 en la  cuarta linea
        {5, 5, 5, 5, 5}     //5*5 == 25 en la  quinta linea
    };                           //si no imprimes esos valores esta mal

                //Muestra de Tabla De Array
		cout<<"La Tabla de Arrays: "<<endl;;
		for (i = 0; i < num; i++) {
			for ( j = 0; j < num; j++) {
				cout<< tabla[i][j];
				}
				cout<<"\n";
				}
 
                                //Suma de Lineas de Array		
				for(j=0;j<num;j++){	
					//sum=0; // con esto Declarado aqui me salen cosas raras que no quiero que salgan
					for(i=0;i<num;i++){						
						sum = sum + tabla[i][j];//suma solo la primera linea ,
			}                                                           // Yo pienso que aqui no pasa a ala siguente linea a sumar y no se cual es la forma.
				cout<<"Fila "<<fila++<<" Resultado: "<<sum<<endl;
				}
return 0;

}
Este es el resultado que me Sale , solo esta bien el primer resultado

La Tabla de Arrays:
12345
22222
33333
44444
55555
Fila 1 Resultado: 15
Fila 2 Resultado: 31 // estos resultados no se de donde salen
Fila 3 Resultado: 48 // no son ni la suma del la suma de cada linea consecutivo
Fila 4 Resultado: 66
Fila 5 Resultado: 85 // este es la suma de todos los elementos del array
E probado tu metodo y va bien pero no me muestra el resultado de la misma forma que en mi metodo. Gracias por la ayuda vangodp ,pero aun estoy atontao jejej.
  #4 (permalink)  
Antiguo 05/06/2014, 01:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: solo suma primera linea

Si quieres que te muestre la suma de cada línea del array, éste sería el pseudocódigo

suma=0
....................................
bucle:

Recorro linea 0 y columnas desde 0 a num. Sumo los resultados y los añado a sum
Muestro el resultado de la suma de los elementos de la linea
Pongo suma a 0

Recorro linea 1 y columnas desde 0 a num. Sumo los resultados y los añado a sum
Muestro el resultado de la suma de los elementos de la linea
Pongo suma a 0

..........................
Recorro linea num y columnas desde 0 a num. Sumo los resultados y los añado a sum
Muestro el resultado de la suma de los elementos de la linea

fin bucle


En código:
Código C++:
Ver original
  1. for(int i=0; i<num; i++)
  2.         {
  3.             for(int j=0; j<num; j++)
  4.                 {
  5.                     sum = sum + tabla[i][j];
  6.                 }
  7.             cout<<"Fila "<<fila++<<" Resultado: "<<sum<<endl;
  8.             sum=0;
  9.         }

Si eso era lo que querías, claro está
  #5 (permalink)  
Antiguo 05/06/2014, 02:23
Avatar de jscmanuel  
Fecha de Ingreso: mayo-2014
Mensajes: 29
Antigüedad: 10 años
Puntos: 0
Respuesta: solo suma primera linea

Es exactamente eso lo que quería hacer, en mi código,pero no tenia ni idea del planteamiento lógico que tenia que hacer ,como dijo soy un novato y no se plantear bien los problemas, Me aconsejáis algún método o información para aclararme con los pseudocódigo y gracias por vuestra ayuda un salud.
  #6 (permalink)  
Antiguo 05/06/2014, 02:49
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: solo suma primera linea

Aunque hay información en internet sobre el formalismo de cómo hacer pseudocódigo, creo que lo importante es aprender a coger papel y lápiz antes de empezar a pulsar una tecla.
La idea de escribir el pseudocódigo es pensar en qué pasos ha de realizar el programa para llegar a la solución propuesta. Por eso hay pseudocódigos muy "abstractos" y otros más concretos que casi sólo necesitan cambiar cada línea del pseudocódigo por las correspondientes instrucciones en el lenguaje de programación.
Lo importante es que hagas las cosas al estilo en el que mejor te desenvuelvas. Llegará un día en el que estos ejercicios te salgan "solos", y obviamente plantear el pseudocódigo estará de más. Pero siempre lo necesitaras para plantear problemas de mayor entidad.
En cierto modo, y sin rigor alguno, diría que es como hacer el guión del programa que tienes en mente. Luego, sólo has de adaptar las instrucciones del programa a ese guión.
  #7 (permalink)  
Antiguo 05/06/2014, 03:56
Avatar de jscmanuel  
Fecha de Ingreso: mayo-2014
Mensajes: 29
Antigüedad: 10 años
Puntos: 0
Respuesta: solo suma primera linea

Gracias Dehm por el mensaje , ire planteando pequeños programas en papel y lápiz y ire formando mi estilo de comprensión y planteamiento de problemas gracias de nuevo un saludo.
  #8 (permalink)  
Antiguo 06/06/2014, 01:14
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: solo suma primera linea

El importante es no desistir. Como ves consigues avanzar con los problemas que te aparecen.
Solo hay un consejo para aprender a programar: "Escribir programas" a mas lo hagas mas rápido te darás con los problemas y mas rápido con las soluciones. ;)
Claro que si estar harto el mejor consejo que te doy es déjalo un rato y despeja la mente. Es increíble que después de descansar ves todo mas claro. He tenido problemas que me han costado mas de una semana dar con respuesta, es un poco estresante pero lo solucione y me sentía genial aun que un poco cansado. jeje

Etiquetas: int, primera, suma
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:10.