Te explicas como un libro en llamas. Pero supongo que lo que querrás hacer es
sum = sum + cant
en lugar de
sum = sum + i
me pide que muestre la suma de los 3 ultimos numeros de una secuencia de 6, xq me da mal shurs? se que debo fallar en el comando de la suma he probado varios y ninguno me da la suma correcta, cual seria?![]()
he probado con sum +3 etc...
import java.util.Scanner;
public static void main(String[] args) {
// TODO Auto-generated method stub
int cant = 0;
int sum = 0;
for (int i = 1; i <= 6; i++) {
System.out.print("Ingrese valor " + i + ":");
cant = (new Scanner(System.in)).nextInt();
sum = sum + i;
}
System.out.println("La suma de los 3 ultimos valores es: " + sum);
}
}
´El mensaje está oculto porque el usuario está en tu lista de ignorados.
solo quiero saber en que fallo
estoy empezando y llevo 30 min probando comandos de la suma pero ninguno me da lo correcto
a ver es simple, 6 numeros por teclado, mostrar la suma de los 3 ultimos...El mensaje está oculto porque el usuario está en tu lista de ignorados.
he probado ese y me sigue sin dar la suma correcta
6+5+4 = 21 segun eso
El mensaje está oculto porque el usuario está en tu lista de ignorados.
Lo que te hace eso es sumar los 6 dígitos. En realidad tampoco, porque tienes mal el "sum = sum + i;". Eso te está sumando 0 + 1 + 2 + 3... Tienes que sumar el valor, no el índice, así que "sum = sum + cant".
Y ahora tienes que hacer que solo sume los 3 últimos valores, no los 6. Puedes hacerlo con un "if i >= 3" por ejemplo.
Según ese código sumas los 6 números. No entiendo por qué pides 6 números y solo quieres sumar 3.El mensaje está oculto porque el usuario está en tu lista de ignorados.![]()
llevas casi un mes pidiendo que te hagan las cosas, te digo como es:El mensaje está oculto porque el usuario está en tu lista de ignorados.
simplemente debes hacer una variable que acumule valores cuando el contador del for sea 4, 5 y 6
pero es tontería, eso lo debes averiguar tu, he conocido a mucha gente como tu, que pide que le hagan las cosas y memorizar en esto no sirve, debes entrenar mucho.
Última edición por doctsuba; 03/11/2017 a las 21:44
pidiendo que me hagan todo de que? si los 3 hilos que he abierto los he hecho con el programa que habia creado yo y pidiendo que me corrijan lo que tengo malEl mensaje está oculto porque el usuario está en tu lista de ignorados.![]()
gracias shur, sinceramente no se me habia ocurrido usar un if para elloEl mensaje está oculto porque el usuario está en tu lista de ignorados.ya me funcionó
Pero si llevarás unos como minimo 7, vete a vacilar a otro ladoEl mensaje está oculto porque el usuario está en tu lista de ignorados.![]()
Estas sumando desde el primer momento si te fijas. Lo puedes arreglar muy fácilmente con un if interno.El mensaje está oculto porque el usuario está en tu lista de ignorados.
Estos errores, son de concepto. Deberías revisar el código más tranquilamente y como ya te he dicho en post anteriores, hacerte una traza instrucción por instrucción.
Coges un papel, y te pones una serie de filas llamdas 1 iteracción, 2 iteracción y así sucesivamente, y en cada fila, vas viendo que valores toman tus variables y de esa forma entenderás que falla y que no.
Además estás sumando la iteracción, no el valor recogido en la iteracción. Si yo soy tu profesor y veo eso, te tacho el ejercicio directamente
import java.util.Scanner;
public static void main(String[] args) {
// TODO Auto-generated method stub
int value = 0;
int result = 0;
for (int i = 1; i <= 6; i++) {
System.out.print("Ingrese valor " + i + ":");
value= (new Scanner(System.in)).nextInt();
if(i>=4)
result= result + value;
}
System.out.println("The result: " + result);
}
}
*PD: Este código es una mierda, si yo fuera tu profesor, este código sólo le pongo un 5. Si fuera tu, lo copiaría, lo probaría e intentaría ver como mejorarlo y hacer un código decente. Yo te doy una base funcional, pero como te digo, este código es mierda absoluta que sólo vale un 5.
Por lo general, para programar, lo primero es pensar una idea, plasmarla en código y depurar los fallos. Una vez parezca que funciona, le sometes a pruebas, lo más exigentes posibles, depuras los fallos. Y una vez pasadas esa pruebas, le sometes a un test de complejidad del código. Que te funcione no significa que ya has terminado o que está bien hecho el código. Que te funcione es lo mínimo exigible a un programador. Luego tienes que comprobar su eficiencia. Dale una pensada a ver como podrías mejorar el código.
Creo que ya te he dado bastantes pistas:
Para los JUnit, te puedes leer esta documentación que te explica como hacer pruebas unitarias a tus códigos: http://www.jtech.ua.es/j2ee/publico/...4-apuntes.html
Última edición por Centurion; 04/11/2017 a las 01:03
Esa mierda de código no se comenta. De hecho, comentar en general es malo, salvo cosas muy concretas, o que uses alguna cosa extraña, es preferible evitar comentarios, porque los códigos son algo vivo, y mañana cambiaré alguna cosa, y pasado le añadiré otra a ese método, y suele ocurrir que los comentarios no se actualizan, quedando obsoletos y no teniendo nada que ver con el código real, lo cual genera erroresEl mensaje está oculto porque el usuario está en tu lista de ignorados.
Son dos errores los que cometes, por un lado estás haciendo SUMATORIO(1..6) con tu código, cuando sólo debería sumarte los tres últimos, y además, estas sumando los valores de la "i" es decir, las iteracciones del bucle, en vez de sumar los valores recogidos en las iteracciones del bucle, que es lo que se te pide.El mensaje está oculto porque el usuario está en tu lista de ignorados.
1 iteracción = 4
2 iteracción = 0
3 iteracción = 2
4 iteracción = 1
5 iteraccion = 2
6 iteraccion = 3
Los numeros a la izquierda de la iteracción es el valor de tu i (te lo marco en rojo), el valor recogido en cada iteracción del bucle es lo que está a la derecha del igual.
Tu tienes que sumar las tres últimas, lo que te marco en negrita
se comenta para APRENDER, se hace el JAVADOC para tener ORDEN.El mensaje está oculto porque el usuario está en tu lista de ignorados.
Ya he visto demasiadas veces en mi vida /*magic code, do not touch*/
Los marranos hacen MARRANADAS.
No sabe hacer ni una suma con bucles básicos y le andas poniendo la cabeza como un bombo con el testeo, soy alguien que ha enseñado a MUCHA GENTE y por eso tengo mis galones.
Ya vi demasiados gilipollas que daban asignaturas en la universidad esas cositas que dices para que luego se lo tuviera que explicar a 7 de mi clase todos los días.
Última edición por doctsuba; 04/11/2017 a las 01:04
Hombre, en universidad si comentas el código, das a entender que sabes lo que estas haciendo. Me refería al mundo profesionalEl mensaje está oculto porque el usuario está en tu lista de ignorados.
En la universidad ME COMEN LOS HUEVOS PORQUE NO SABEN PROGRAMAR.El mensaje está oculto porque el usuario está en tu lista de ignorados.
En la vida real, se hacen las cosas con RIGOR y PRAGMATISMO, las marranadas para los MARRANOS.
En Clean Code basicamente te dicen que el mejor comentario es el que no se escribeEl mensaje está oculto porque el usuario está en tu lista de ignorados.
![]()
que opinas de este codigo para un principiante shur, me hace lo que tiene que hacer, 2 listas de numeros, la suma de cada una y mostrar cual es mayor o si son iguales. PD: tengo que usar while para recoger las listasEl mensaje está oculto porque el usuario está en tu lista de ignorados.
Scanner teclado = new Scanner(System.in);
int valor = 1;
int valor2 = 1;
int sum = 0;
int sum2 = 0;
int cant = 1;
int cant2 = 1;
System.out.print("PRIMERA Lista\n");
while (cant <= 4) {
System.out.print("Dame valor " + cant + ":");
valor = (new Scanner(System.in)).nextInt();
sum = sum + valor;
cant++;
}
System.out.print("\n");
System.out.print("SEGUNDA Lista \n");
while (cant2 <= 4) {
System.out.print("Dame valor " + cant2 + ":");
valor2 = (new Scanner(System.in)).nextInt();
sum2 = sum2 + valor2;
cant2++;
}
System.out.print("\n");
System.out.print("TOTAL Lista 1: " + sum + "\n");
System.out.print("TOTAL Lista 2: " + sum2 + "\n");
if (sum > sum2) {
System.out.println("Lista 1 MAYOR");
}
else if (sum2 == sum) {
System.out.println("SON IGUALES");
}
else
System.out.println("Lista 2 MAYOR");
teclado.close();
Eso no es una lista, deberías emplear una estructura de datos que implemente la interfaz "List" como por ejemplo ArrayListEl mensaje está oculto porque el usuario está en tu lista de ignorados.
Aquí tienes información sobre esa estructura y como usarla: https://docs.oracle.com/javase/8/doc...ArrayList.html