程序:所以我做了一個程序,它需要兩個數字,N和L.N是二維數組的大小,L是一個從3到16的數字。程序構建數組並開始在中心並以逆時針螺旋方式出現,我是中心的值,當你經過數組時(螺旋線),數值將增加1,它是素數,數字是分配給該點,如果沒有它*將代替它,而不是浮點異常(核心轉儲
錯誤:我得到一個「浮點異常」的錯誤,我將如何解決這個
代碼:
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 ;
}
你分/用零來修飾。 – Mysticial
在第一次迭代中'Number%i''' i = 0'。 – Mysticial
另外,當'移動<0'時,'lctn - move> lctn'。看你的跡象。 –