2017-09-28 7 views
-2

최근 Project Euler 과제에 대한 작업을 시작하기 위해 필자가 직접 취했습니다. 문제가 7 번 발생했으며 코드에 이상한 오류가 발생했습니다. 내 코드에서 발견 된 소수의 수를 계산하는 count이라는 변수가 있지만 인쇄하려고하면 null로 인쇄됩니다. 정수를 외치는 중 오류가 발생했습니다.

#include <iostream> 

int main() 
{ 
    bool isPrime = true; 

    for(int i = 1; i <= 10000000000;) 
    { 
     int count; 
     for(int factor = 1; factor = i; factor++) 
     { 

      if(i%factor == 0) 
      { 
       isPrime = false; 
       break; 
      } 
     } 

     if(isPrime) {count = count + 1;} 

     std::cout << count + "-"; 
     if(count == 10001) 
     { 
      std::cout << count; 
      std::cout << i + "Final \n"; 
      break; 
     } 
     i++; 
    } 


} 

라인 std::cout << count + "-"; 실행이 출력은

:

-------------------------------------------------------------------------------------------------------- 

등 나는 그것이 counts의 초기화와 함께 할 수있는 뭔가가 있다고 생각하지만, 잘 모르겠어요. 어떤 도움을 주셔서 감사합니다!

+2

경고 설정을 높이거나 경고에 실제로주의해야하는 더 나은 컴파일러/필요가 필요합니다. 귀하의 코드는 잘못된 코드에 대해 5 가지 다른 경고를 던집니다 : http://coliru.stacked-crooked.com/a/6ef7a57438ba8b8c – NathanOliver

+1

"_ 초기화 된 변수"Nothing_ "하지만 .. 변수'count'는 ** 초기화되지 않았습니다 ** 초기화가 무엇인지 아십니까? –

+0

@ NathanOliver 알려 주셔서 감사합니다. g ++을 처음 사용하는 사람입니다. 4.5 시간 전에 설치했습니다. 알아 둘만한. –

답변

1

따라서 단지 출력, 당신은 아무것도 문자열을 연결하고있는 "+"연산자를 사용하여 사용

std::cout << count << "-"; 

"-"문자열입니다. 당신이 당신은 내가 값을 가질 요소를 할당보다는 평등을 확인하는

for(int factor = 1; factor = i; factor++) 

코드의 라인에, 위에서 언급 한 오류 외에도

std::cout << std::to_string(count) + "-"; 
+0

오, 재미 있어요. Java를 많이 사용했지만 C++은 많지 않습니다. 도와 주셔서 감사합니다! –

+0

대체 제안을 권하지 않습니다. 그것은 당신에게 아무것도 얻지 못하고 비싸다. – NathanOliver

+0

@JamesKirk 왜 Java의 의미를 가정하고 C++이 동일할까요? [좋은 C++ 책] (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)을 읽는 것이 좋습니다. –

3

을 할 수있는 대안으로

다음과 같이하십시오 :

factor == i; 

나는 이것이 당신이하려는 일이라고 가정합니다.

+0

댓글 (-1)이어야하지만 아직 댓글을 작성할 수 없으며이 정보는 Asker (+1)에 대한 유용한 정보입니다. 평평하게 나옵니다. – user4581301

+0

이제 내가 의견을 말할 수있게되었는데, 당시 내가 할 수있는 권한이 있다면 그것은 논평 일 것이라고 말함으로써 스스로를 방어하자. – mreff555