none
Programa .exe creado en C. Deja de funcionar en Windows 10. RRS feed

  • Pregunta

  • Buenas noches.

    El problema es que estoy practicando programación en lenguaje C. 

    Al ejecutar un programa .exe me sale un mensaje que el programa dejó de funcionar correctamente por un problema.Windows cerrará el programa y le notificará si existe alguna solución. Ademas no me muestra ningun codigo de error.

    Este es el código que intento ejecutar, como verán es muy simple, pero no se si ahi este el problema. Ya lo probe con el Devc++ y con Visual studio code, y sucede lo mismo, el programa deja de funcionar.

    //Librerias
    #include<stdio.h>
    //Funcion main
    
    main()
    {
    	int num = 86;
    	int div = 0;
    	int i;
    	for (i = 0; i<num; i++){
    		if (num%i==0)
    			div=div+i;
    }//Cierra bucle for
    	if (num==div)
    		printf("El numero %num es perfecto",num);
    	
    	
    	return 0;
    }//Cierra funcion main

    sábado, 22 de agosto de 2020 3:20

Todas las respuestas

  • Hola LuisM9445:

    Creo que tú pregunta tendrá un encaje mejor en el foro de MSDN C++


    sábado, 22 de agosto de 2020 5:13
  • Me imagino que ya lo habrás averiguado, pero por si acaso, lo que deberías poner es:
    printf("El numero %d es perfecto",num);
    no, %num.
    jueves, 10 de septiembre de 2020 18:19
  • Aparte de lo que te cuento en la respuesta anterior, cuando haces if(num%i==0), como i vale 0 como primer valor, al dividir por 0 el programa da una excepción.Para que te hagas una idea de lo que va pasando te pongo tu programa reformado (y cambiando el valor inicial de i), para que veas  los valores que se van produciendo:
    #include <stdio.h>
    main()
    {
    	int num = 86;
    	int div = 0;
    	int i;
    	for (i = 1; i<num; i++){
    		if (num%i==0)
    			div=div+i;
    		printf("i:%d - div:%d\n", i, div); //muestra valores de i y div 
            }//Cierra bucle for
    
           printf("Al final: num=%d, div=%d", num, div);  // muestra como quedan num y div
               if (num==div) 
    		printf("El numero %d es perfecto",num);
    	
    	return 0;
    }//Cierra main

    viernes, 11 de septiembre de 2020 11:16