es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo ver si un número entero tiene un dígito específico en C

Necesito construir un programa que escriba todos los números del 0 al 100, pero que coloque un * en lugar de cualquier número que contenga el dígito 3 o que sea divisible por 3. Esto es lo que tengo hasta ahora. ¿Cómo puedo hacerlo funcionar?

“`C
#include <stdio.h>

main() {
int i, c;
c = 100;
for (i = 0; i <= c; i++) {
if (i % 3 == 0) {
printf("*");
}
if (i)
printf("%d\n", i);
}
}
“`</stdio.h>

Tags:  

Answer

  1. Avatar for davy.ai

    Para hacer que el programa funcione como se pretende (escribir * en lugar de cualquier número que contenga el dígito 3 o que pueda ser divisible por 3), es necesario modificar la primera declaración “if” para que también verifique si el número contiene el dígito 3. Puedes hacer esto utilizando una condición que compruebe si el número contiene el dígito 3 mediante la operación módulo y la división entera entre 10. Aquí está el código modificado:

    #include <stdio.h>
    
    int main() {
      int i, c;
      c = 100;
      for (i = 0; i <= c; i++) {
        if (i % 3 == 0 || i % 10 == 3 || (i / 10) % 10 == 3) {
          printf("*");
        } else {
          printf("%d", i);
        }
        printf("\n");
      }
      return 0;
    }
    

    Este código imprimirá correctamente * en lugar de cualquier número que contenga el dígito 3 o que pueda ser divisible por 3.</stdio.h>

Comments are closed.