Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Floating point exception( core dump

Tags:

Program: So I made a program that take two numbers, N and L. N is the size of a 2D array and L is a number from 3 - 16. The program builds the array and starts at the center and works its way out in a counter clockwise spiral. I is the value of the center and its as you go through the array( in the spiral ) the value will increase by one. It it is prime, that number will be assigned to that spot and if not it * will take its place instead.

Error: I'm getting a "Floating point exception " error, how would I solve this?

Code:

 void Array_Loop( int *Array, int n, int L ) ;

int Is_Prime( int Number ) ;

int main( int argc, char *argv[] ){

  int **Array ;
  int n, L ;

  n = atoi( argv[1] ) ;
  L = atoi( argv[2] ) ;

  Matrix_Build( &Array, n, n ) ;
  Array_Loop( Array, n, L ) ;


  return 0 ;

}

void Array_Loop( int *Array, int n, int L ){

  int i, j, k, h ;
  int lctn, move;

  lctn = n / 2 + 1 ;
  i = lctn ;
  j = lctn ;
  move = 1

  while( i != 0 && j != n ){

    for( j = lctn ; j < lctn + move ; j++ ){

         if( L % 2 == 2) Array[i][j] = -1 ;
         else Array[i][j] = Is_Prime( L ) ;
         L++ ;
    }

    move = move * -1 ;

    for( i = i ; i > lctn - move ; i-- ){

      if( L % 2 == 2) Array[i][j] = -1 ;
      else Array[i][j] = Is_Prime( L ) ;
      L++ ;
    }

    move-- ;

    for( j = j ; j > lctn - move ; j-- ){

      if( L % 2 == 2) Array[i][j] = -1 ;
      else Array[i][j] = Is_Prime( L ) ;
      L++ ;
    }

    move = move * -1 ;

    for( i = i ; i < lctn - move ; i-- ){

      if( L % 2 == 2) Array[i][j] = -1 ;
      else Array[i][j] = Is_Prime( L ) ;
      L++ ;
    }

    move++ ;

  }

}


int Is_Prime( int Number ){

  int i ;

  for( i = 0 ; i < Number / 2 ; i++ ){

    if( Number % i != 0 ) return -1 ;

  }

  return Number ;

}
like image 271
X_Trust Avatar asked Dec 01 '12 23:12

X_Trust


People also ask

What does floating point exception core dumped?

Floating point exception (core dumped) is an error that arises when your application tries to do something that is not allowed with a floating point number.

What are floating point exceptions?

A floating point exception is an error that occurs when you try to do something impossible with a floating point number, such as divide by zero.

What is floating point exception in assembly?

Floating-point exceptionsThe exception is caused if the result of an operation has no mathematical value or cannot be represented. Division by zero. The exception is caused if a divide operation has a zero divisor and a dividend that is not zero, an infinity or a NaN. Overflow.


1 Answers

You are getting Floating point exception because Number % i, when i is 0:

int Is_Prime( int Number ){

  int i ;

  for( i = 0 ; i < Number / 2 ; i++ ){

    if( Number % i != 0 ) return -1 ;

  }

  return Number ;

}

Just start the loop at i = 2. Since i = 1 in Number % i it always be equal to zero, since Number is a int.

like image 68
dreamcrash Avatar answered Nov 09 '22 22:11

dreamcrash