Chương trình: Vì vậy, tôi đã thực hiện một chương trình có hai số, N và L. N là kích thước của một mảng 2D và L là một số từ 3 - 16. Chương trình xây dựng mảng và bắt đầu tại trung tâm và làm việc theo cách của nó ra trong một xoắn ốc ngược chiều kim đồng hồ.Tôi là giá trị của trung tâm và của nó khi bạn đi qua mảng (trong xoắn ốc) giá trị sẽ tăng một. Nó là số nguyên tố, con số đó sẽ là giao cho vị trí đó và nếu không muốn nói nó * sẽ mất vị trí của nó thay vìNgoại lệ dấu chấm động (core dump
lỗi:. tôi nhận được một "Floating điểm ngoại lệ" lỗi, làm thế nào tôi sẽ giải quyết này
Mã:
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 ;
}
Bạn đang chia/modding bằng 0. – Mysticial
'Số% i' ...' i = 0' trên lần lặp đầu tiên. – Mysticial
Ngoài ra, khi 'di chuyển <0',' lctn - move> lctn'. Xem dấu hiệu của bạn. –