숫자가 소수인지 확인하기 위해 다음 코드를 작성했습니다. 나는 다른 방법, 아마도 더 나은 방법을 알고 있지만, 나는이 방법으로 무엇이 잘못되었는지 알고 싶다. 숫자가 소수인지 여부를 정확하게 식별하지만 i가 소수 인 경우 세그먼트 화 오류가 발생합니다.세그먼트 화 오류를주는 소수 검사 코드
코드 :
#include<stdio.h>
void prime(int);
int main()
{
int a;
printf("Enter number\n");
scanf("%d",&a);
prime(a);
return 0;
}
void prime(int a)
{
static int k=2;
if((a%k==0)&&(a!=k))
printf("Not a prime\n");
else
{
k++;
if(a==k)
printf("Prime\n");
prime(a);
}
}
참고 : 코드를 수정하려고, 나는 당신이 == K 또는 K를 사용하는 경우가 더 차이가 없다는 것을 발견 == 다른 조건에서-1.
특히 생산하지 않습니다. 디버거를 사용하거나 인쇄 문을 추가하여 프로그램의 진행 상황을 추적하고 발생할 것으로 예상되는 것과 비교하여 문제를 격리해야합니다. 이 둘이 갈라지면 문제를 발견했습니다. (그리고 필요하다면 [최소한의 테스트 케이스] (http://sscce.org)를 만들어야한다.) –