게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
(질문 주의) for랑 if랑 함수 사용 질문이요..
게시물ID : programmer_2558짧은주소 복사하기
작성자 : 킁카킁
추천 : 0
조회수 : 386회
댓글수 : 8개
등록시간 : 2014/04/10 16:25:50
안녕하세요.
 
저는 지금 흔한 과제인 소수 판별 코드 짜오기 과제중입니다..
(민폐 죄송합니다.. 근데 넘 막막해요..ㅠㅠ)
 
대충 코드가 이렇게 되어요.
 
 
 
 
 
 
#include<stdio.h>
 
int PrimeOX (int num)
{
 int halfnum,i,Q,result=0;
 halfnum = num/2;
 
 for ( i=2 ; i <= halfnum ; i+1)
 {
  Q=num%i;
  {
   if (Q == 0)
   break;
  }
  if ( i == halfnum)
  return;
 }
 return;
}
 
 

int main (void)
{
 int num,result=0;
 printf("정수를 입력하세요~ : ");
 scanf("%d",&num);
 result = PrimeOX (num) ;
 if (result = 0)
  printf("\n\n%d는 소수가 아닙니다.",&num);
 else
  printf("\n\n%d는 소수 입니다.",&num);
 
}
 
 
 
 
 
 
근디 저기 밑줄친 부분부터 뭔가 이상해지는 것 같아요.
printf에서 num을 출력하잖아요. 근데 4를 입력하면 막 1243140 이런숫자가 나와요.
그러니까 scanf에서 4를 입력받았을 때 출력이 (1243140는 소수입니다.) 라구 나와요..
 
제 의도는요
1) N를 입력하면... primeOX함수를 호출해서 값을 구하는데요.
2) (PrimeOX함수 안에서) N을 2부터 N/2까지의 수로 나눠서 (for),,
3) 나눈 나머지가 0이되면 루프문을 탈출하구 (if ~ break)..
4) 아니면 N/2의 수까지 다 나눠보고..
5) 루프문을 탈출 할 경우 1, 아닌경우 0을 main으로 보내주고 싶어요. ------> 어떻게 표현해야 할지 모르겟어요...전 빠간가봐요.
5) main안에서... 호출한 primeOX 함수에게서 받은 값에 따라 소수인지 아닌지를 판별하는 겁니다. 
 
 
 
 
질문 1) main 함수에서 printf에 num을 출력하는데 왜 이상한 숫자가 나올까요..?
 
질문 2) PrimeOX 함수에서..num%i(i는 2 ~ N/2)가 0인경우, 그 밖의 경우 두가지로 나눌때... 어떻게 결과를 써야하나요..?
           return? break?....ㅜㅠ..
 
 
복잡스런 질문 죄송함니당...
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호