Programa que lea una serie de números por teclado hasta que se lea un número negativo. El programa indicará cuántos números acabados en 2 se han leído.
Para saber si un número acaba en dos o en general para saber en qué dígito termina un número entero se divide el número entre 10 y se obtiene el resto de esta división.
En Java el operador que obtiene el resto de una división es el operador %
En este caso para saber si el número acaba en 2 escribiremos la instrucción:
if(n%10==2)
Para saber si un número acaba en dos o en general para saber en qué dígito termina un número entero se divide el número entre 10 y se obtiene el resto de esta división.
En Java el operador que obtiene el resto de una división es el operador %
En este caso para saber si el número acaba en 2 escribiremos la instrucción:
if(n%10==2)
import java.util.*;
/**
* Programa que lea una serie de números por teclado hasta que
* se lea un número negativo. El programa indicará cuántos números
* acabados en 2 se han leído.
* @author Enrique
*/
public class AcabadosEn2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n, contador=0;
System.out.print("Introduce un número entero: ");
n = sc.nextInt();
while(n>=0){
if(n%10==2){ //Si el número acaba en dos, se cuenta
contador++; //esta variable contendrá cuántos números acabados en 2 se han leído.
}
System.out.print("Introduce un número entero: ");
n = sc.nextInt();
}
System.out.println("Se han introducido " + contador + " números acabados en 2");
}
}
amigo falta el comando "break;" al final para que no se cree un bucle infinito
ResponderEliminarDaniel no es necesario poner un break, el while se repite hasta que se introduzca un número negativo
Eliminarhay que tratar de escribir un código más elegante señores....
ResponderEliminarScanner sc = new Scanner(System.in);
int n, contador = 0;
do {
System.out.print("Introduce un número entero: ");
n = sc.nextInt();
if (n % 10 == 2)
contador++;
} while (n >= 0);
System.out.println("Se han introducido " + contador + " números acabados en 2");
Holaa, y que pasaria si el numero negativo fuera acabado en 2?? A mi no me cuenta taal numero.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarGracias...
ResponderEliminarse vuelve infinito.... :(
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarHago una aportación del ejercicio más avanzada:
ResponderEliminarpackage ejerciciosGenerales;
import java.util.Scanner;
public class Ejer5 {
// Leer un numeroS y contar cuantoS acaban en 2
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
System.out.print("Introduzca el total de numeros que desea ingresar: ");
int todosNumeros = scn.nextInt();
int[] numeros = new int[todosNumeros];
System.out.println("Introduzca " + todosNumeros + " numeros: ");
for (int i = 0; i < numeros.length; i++) {
System.out.print("Numero " + (i + 1) + ": ");
numeros[i] = scn.nextInt();
}
System.out.println("Los numeros introducidos son: ");
try {
for (int i = 0; i < numeros.length; i++) {
System.out.println(numeros[i]);
}
} catch (Exception exc) {
// TODO Auto-generated catch block
exc.printStackTrace();
}
System.out.println("Y los numeros acabados en 2 son: ");
for (int i = 0; i < numeros.length; i++) {
if (numeros[i] % 10 == 2) {
System.out.println(numeros[i]);
}
}
}
}
Necio, J.G me salvaste, necesitaba un código justo como el que tu pusiste, sos groso.
EliminarWow.
Eliminarnecesito un código que no se haga infinito
ResponderEliminarNo es infinito. El programa termina cuando se introduce un número negativo.
EliminarNecesito un Hero sin capa si me lo podria pasar en Programacion orientada a objetos por favor
ResponderEliminarY si quiero que pare con n cantidad de números?
ResponderEliminarMuchas gracias, la verdad me sirvió mucho para poder realizar mi trabajo de la universidad
ResponderEliminar