저는 C를 처음 사용했기 때문에 이해할 수없는 분할 오류가 발생했습니다. I는 엄격 양수의 계수의 개수를 계산하려고 다음 프로그램 가지고C 세그먼트 화 오류 Printf() 및 Scanf()
#include <stdio.h>
#include <math.h>
int numberOfFactors (int number, int factor) {
if (number % factor == 0) {
number = number/factor;
return numberOfFactors(number, factor) + 1;
} else {
return 0;
}
}
int check (int x) {
if (x>0) {
return 1;
} else {
return 0;
}
}
int main(void) {
int number;
printf("Please enter a positive integer n such that n >= 1: ");
scanf("%d", &number);
if (check(number)){
int i;
for (i=1; i<=number; i++) {
int factors;
factors = numberOfFactors(number, i);
printf("%d^%d ", i, factors);
}
}
return 0;
}
분할 결함 이러한 라인 이후의 정수를 입력하고 입력 된 직후 발생을 주()
printf("Please enter a positive integer n such that n >= 1: ");
scanf("%d", &number);
세그멘테이션 오류를 일으키는 부분은 무엇이며 어떻게 피할 수 있습니까?
int numberOfFactors (int number, int factor) {
if (number % factor == 0) {
number = number/factor;
return numberOfFactors(number, factor) + 1;
} else {
return 0;
}
}
같은에 numberOfFactors 변경 :
디버거에서 실행 해 보셨습니까? 잘못을 일으키는 정확한 선에서 멈출 가능성이 높습니다. –
아니요, 실제로 TextWrangler에 입력 한 다음 학교 환경의 Linux 환경으로 FTPing하고 있습니다. – canton