씨언어 소수(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의 값을 초기화해주세요.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력