Anuncio

Colapsar
No hay ningún anuncio todavía.

C: Problema al ejecutar

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • C/C++ C: Problema al ejecutar

    Hola. He escrito el siguiente código:
    Código:
    #include <stdio.h>
    
    int main()
    {
        int i, k, divisor;
        int submultiplos[ 10 ];
        int coeficientes[ 5 ];
        char coeficiente = 65;
        for( i = 0; i <= 5; i++ )
        {
            printf( "Introduce el coeficiente %c\n", coeficiente );
            scanf( "%i", &coeficientes[ i ] );
            coeficiente++;
        }
        for( i = 0, k = 0; i <= 10; i++ )
        {
            divisor = coeficientes[ 5 ] % i;
            switch( divisor )
            {
                case 0:        
                divisor = submultiplos[ k ];
                k++;
                break;
                default:
                divisor != submultiplos[ k ];
                break;
            }
        }
        for( i = 0; i <= k; i++ )
        {
            printf( "%i", submultiplos[ i ] );
        }
    return 0;
    }
    Lo compila perfectamente. Sin embargo, a la hora de ejecutar el programa, y una vez introducidos los 6 coeficientes, me sale el siguiente mensaje: "Excepción de coma flotante".
    ¿Cómo lo puedo solucionar?

    P.D: uso el compilador GCC.
    Última edición por Tuxero; 08/08/2010, 16:17:06.
     \dst \iint_{\partial V} \boldsymbol{A}\cdot \boldsymbol{n} \,dS = \iiint_{V} \nabla \boldsymbol{A}\, dV

  • #2
    Re: Problema al ejecutar

    Creo que tienes mal esto:

    for( i = 0, k = 0; i <= 10; i++ )
    {
    divisor = coeficientes[ 5 ] % i;
    Al hallar el módulo estás haciendo una división por cero.

    Saludos

    Comentario


    • #3
      Re: C: Problema al ejecutar

      Es verdad. He sustituido esta parte:
      Código:
        for( i = 0, k = 0; i <= 10; i++ )
          {
              divisor = coeficientes[ 5 ] % i[FONT=Verdana]
      [/FONT]
      por esta otra:
      Código:
      for( i = 2, k = 0; i <= 10; i++ )
          {
              divisor = coeficientes[ 5 ] % i;
      Y ahora, en vez de darme ese mensaje, me salen números raros, como si estuviera accediendo aleatoriamente a la memoria.
      ¿Alguna solución?
      Última edición por Tuxero; 08/08/2010, 18:54:52.
       \dst \iint_{\partial V} \boldsymbol{A}\cdot \boldsymbol{n} \,dS = \iiint_{V} \nabla \boldsymbol{A}\, dV

      Comentario


      • #4
        Re: C: Problema al ejecutar

        Eso es porque en submultiplos no estás metiendo ningún dato y es la matriz que estás imprimiendo. Al no estar siquiera inicializada, tiene basura que es lo que te está mostrando. Debes estar haciendo alguna asignación al revés; ¿no será
        submultiplos[k] = divisor
        ?

        Además, la operación

        divisor != submultiplos[ k ];
        no tiene sentido; estás comparando "divisor" con "submultiplos[k]" ; deberías repasar bien todo.

        Un saludo.

        Comentario

        Contenido relacionado

        Colapsar

        Trabajando...
        X