2016-10-09 3 views
-3

100 프로그램에서 소수를 표시합니다 를 내가 1 사이의 모든 소수를 표시하는 프로그램을해야 100이 코드를 제대로 실행할 수 없습니다. 1

역사 : 나는에 대한 사용자 요청하는 프로그램을 만들었습니다 숫자가 그에게 소수인지 여부를 알려주고, 그렇지 않으면 프로그램은 그 요소를 표시합니다.

혼란 : 그러나이 프로그램 (디스플레이 주요없이 1 ~ 100.)를 못해 제대로 실행 왜 이해할 수 없다.

도움이 될 것입니다.

//pre-processor directives 
#include <stdio.h> 
#include <conio.h> 
#include <stdlib.h> 

//global variables/declarations 
int factors=0; 
int checkifprime(int num); 

//main function - start 
int main() 
{ 
    //declaring loop variable 
    int c; 
    for (c=1;c<=100;c++) 
    { 
     if (c==1 ||c==2) 
     { 
      printf("\n%d is a prime number",c); 
     } 
     else 
     { 
      factors = 0; 
      printf("error "); 
      checkifprime(c); 
      printf("error "); 
      if (factors=0) 
      { 
       printf("\n%d is a prime number",&c); 
      } 
      else 
      { 
       printf("\n%d is NOT a prime number",&c); 
      } 
     } 
    } 

} 

int checkifprime(int num) 
{ 
    int i; 
    if (num>0 && num<2147483640) 
    { 
     i = num-1; 

     for (i;i>1;i--) 
     { 
      if (num%i==0) 
      { 
       factors=factors+1; 

       printf(" %d",i); 
      } 
     } 
    } 

    //program finished 
    getch(); 
    return 0; 
} 
+1

작성된 언어를 결정하는 것이 좋습니다. –

+2

_ "이해할 수 없음"_은 문제 설명이 아닙니다. –

+2

은 소수로 '1'입니까? –

답변

2

작지만 중요한 오타가 하나 있습니다. 모든 경고를 켰다면 다음에 컴파일러가 제공하는 모든 경고를 켜십시오. 추가 청소의 비트가 Windows 전용의 물건을 제거하는 후 :

//pre-processor directives 
#include <stdio.h> 
#include <stdlib.h> 

//global variables/declarations 
int factors = 0; 
int checkifprime(int num); 

//main function - start 
int main() 
{ 
//declaring loop variable 
    int c; 
    puts("1 is NOT a prime number"); 
    for (c = 2; c <= 100; c++) { 
    if (c == 2 || c == 3) { 
     printf("%d is a prime number\n", c); 
    } else { 
     factors = 0; 
     checkifprime(c); 
     fputc('\n',stdout); 
     // you had a typo here "=" instead of "==" 
     if (factors == 0) { 
     printf("%d is a prime number\n", c); 
     } else { 
     printf("%d is NOT a prime number\n", c); 
     } 
    } 
    } 
    exit(EXIT_SUCCESS); 
} 

int checkifprime(int num) 
{ 
    int i; 
    if (num > 0 && num < 2147483640) { 
    for (i = num - 1; i > 1; i--) 
    { 
     if (num % i == 0) { 
     factors = factors + 1; 
     printf(" %d", i); 
     } 
    } 
    } 
//program finished 
    return 0; 
} 

아직 적합하지 않습니다하지만 최소한 작동하고 당신이 그것을 구축 할 수 있습니다.

+0

대단히 고마워요.이 빌어 먹을 오타 ... –

+0

아니. 그 오타가 유일한 문제는 아니었다. .. 아직도 대답이 필요하다. : ( –

+0

내가 게시 한 코드는 의도 한대로 작동하고 작동한다 : 문제가있는 경우 인쇄가 중요하다. 명시 적으로 질문해야한다. 귀하의 문제에 대한 설명 – deamentiaemundi

관련 문제