私はC言語を新しくしており、理解できないセグメンテーションフォルトが発生しています。 )セグメンテーション障害が直ちに整数を入力した後に発生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;
}
と(主にこれらの行の後にENTER:
printf("Please enter a positive integer n such that n >= 1: ");
scanf("%d", &number);
Iは厳密に正の数の要素の数を計算しようとし、次のプログラムを有しています
これらの行のどの部分がセグメンテーション違反を引き起こしていますか?それを避けるにはどうすればよいですか?
int numberOfFactors (int number, int factor) {
if (number % factor == 0) {
number = number/factor;
return numberOfFactors(number, factor) + 1;
} else {
return 0;
}
}
ような何かにあなたのnumberOfFactorsを変更します:
デバッガで実行しようとしましたか?故障の原因となっている正確な線で停止する可能性が高いです。 –
いいえ、私は実際にこれをTextWranglerで入力してから、私の学校のLinux環境にFTPしています。 – canton