2014-09-19 2 views
-1
//Prime test 
    if(iSelectedOp == 6) 
    { 
     printf("Enter positive integer to be tested: \n"); 
     scanf("%d", &dInteger1); 
     int i; 
     int f; 
     for (i= 2; i < 10; i++) 
     { 
      if (num1 % i == 0); 
       f++; 
       printf("%d is prime\n", dInteger1); 
      else  
       printf("no prime\n"); 
      } 

    } 

안녕하세요. 여기 입력 숫자를 사용하여 소수인지 아닌지 사용자에게 알려주는 기능이 있습니다. 나는 이전에 if가 없으면 else가 있다고 말하는 오류가 나타납니다. 내가 놓친 구문이라는 것이 확실합니다. 어떤 아이디어? 그것은 또한 당신이 if 후 추가 세미콜론했다 브라켓 기타 오류가있는 경우 소수

if (num1 % i == 0) 
{ 
    f++; 
    printf("%d is prime\n", dInteger1); 
} 
else  
    printf("no prime\n"); 

을 필요로하므로

+2

첫 번째 if에서';'를 제거해보십시오. –

+0

그리고'{'중괄호'}'를'f ++; printf (...);'. –

답변

1

당신은, 만약 당신의 내면을 다음 하나 개 이상의 문장이있다.

혼동을 피하고 코드를 읽기 쉽게하기 위해 필자는 필요 여부에 관계없이 일반적으로 {}를 사용합니다. 이것은 스타일의 포인트이지만, 절대적으로 필요한 것은 아닙니다.

if (num1 % i == 0) 
{ 
    f++; 
    printf("%d is prime\n", dInteger1); 
} 
else  
{ 
    printf("no prime\n"); 
} 
1
if (num1 % i == 0); 
       ^delete this 

이 있어야한다 :

중괄호없이

, if (및 while, for 등)을 ;는 (그래서 if (true) a(); b();를 들어, a() 유일한 때까지 문의 몸은 GO 부분은 if으로, b()은 항상 if의 범위를 벗어나므로 실행됩니다.

0

if 문 뒤에 세미콜론을 사용하면 else이 따르지 않습니다. 관련 메모에서 나는 당신의 구현이 전혀 작동하지 않을 것이라고 생각합니다. 이것은 당신이 찾고있는 것과 더 가깝습니다 :

bool prime = true; 
    for (i = 2; i*i <= dInteger1; i++) 
    { 
     if (dInteger1 % i == 0) 
      prime = false; 
    } 
    if(prime) 
     printf("%d is prime\n", dInteger1); 
    else 
     printf("no prime\n"); 
관련 문제