씨언어 소수(prime number 찾기) 코드 질문

조회수 2606회

입력된 양의 정수(X)보다 작은 최대 소수(prime number)을 return하는 사용자 정의 함수 구하기...

3,7 등 같은 소수를 구하려고 합니다. X를 입력하면 사용자 정의 함수에서, for문을 이용해 X보다 작은 숫자들을 소수인지 아닌지 모두 체크해보려 합니다. 그런데, 제가 문법을 잘 몰라서 그런지... result라는 변수가 초기화 되지 않았다고 오류가 뜹니다. for문이 제대로 작동하지 않아서 그런거 같은데, 사용자 정의 함수에서 for문에 어떠한 오류가 있나요?

#include <stdio.h>

unsigned int prob1(unsigned int X);

int main()
{
    unsigned int X=10;
    unsigned int result;

    result = prob1(X);

    printf("%d\n", result);
}

unsigned int prob1(unsigned int X)
{
    unsigned int dump=0, result;
    unsigned int i=0, j;

    for(i=X-1;i>=3;i--)
    {
        for(j=i-1;j>=2;j--)
        {
            if((i%j)!=0)
            {
                continue;
            }
            else if((i%j)==0)
            {
                dump=i;
                break;
            }
        }

        if(dump==0)
        {
            result=i;
            break;
        }

    }


    return result;

1 답변

  • 함수 prob1이 쓰레기값을 리턴할 수 있습니다. prob1에서 dump==0 조건에 걸리지 않을 시 result는 쓰레기값을 담은 채로 리턴됩니다.

        unsigned int dump=0, result=0;
    

    와 같이 result의 값을 초기화해주세요.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)