Programm: Also habe ich ein Programm gemacht, das zwei Zahlen N und L nimmt. N ist die Größe eines 2D-Arrays und L ist eine Zahl von 3-16. Das Programm baut das Array auf und startet in der Mitte und arbeitet sich heraus in einer Spirale gegen den Uhrzeigersinn.I ist der Wert des Zentrums und wenn Sie durch die Anordnung gehen (in der Spirale) wird der Wert um eins erhöht.Es ist Prime, wird diese Nummer sein an dieser Stelle zugewiesen und es, wenn nicht * wird stattdessen seinen Platz einnehmenGleitkommaausnahme (Core-Dump
Fehler:. ich erhalte eine „Floating-Point exception“ Fehler, wie würde ich dieses Problem lösen
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 ;
}
Sie Dividieren/Modding durch Null. – Mysticial
'Zahl% i' ...' i = 0' in der ersten Iteration. – Mysticial
Wenn 'move <0 'ist,' lctn - move> lctn'. Achte auf deine Zeichen. –