저는 C++을 배우고 있으며 프로그램에 문제가 있습니다. 큰 숫자중첩 루프 및 모듈러스 C++
*---------*
-*-------*-
--*-----*--
---*---*---
----*-*----
-----*-----
----*-*----
---*---*---
--*-----*--
-*-------*-
*---------*
이것은 N = 5 제대로 작동 내 코드는 아니지만 : 그것은 n=11
경우 다음과 같은 출력한다 n=11
경우
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "Enter size (n x n): " << endl;
cin >> n;
for (int i=0;i<n;i++){
for (int j=0;j<n;j++){
if (i%n==j%n) cout << '*';
else if (i%(n-i)==j%(n-j)) cout << '*';
else cout << '-';
}
cout << endl;
}
return 0;
}
이 인쇄되고 :
를*---------*
-*----*--*-
--*-----*--
---*---*---
----*------
-----*-----
-*----*--*-
---*---*---
--*-----*--
-*----*--*-
*---------*
나는 '*'진단 중 하나를 인쇄하는 방법을 성공적으로 작성했습니다. 그러나 무언가는 거꾸로 가고있는 다른 것과는 작동하지 않습니다. 불행히도이 문제를 해결할 수 없어 귀하의 조언이 필요합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 이러한 문제를 디버깅하는 방법?
이러한 문제를 해결하는 올바른 도구는 디버거입니다. 스택 오버플로를 묻기 전에 코드를 단계별로 실행해야합니다. 자세한 도움말은 [작은 프로그램 디버깅 방법 (Eric Lippert 작성)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)을 참조하십시오. 문제를 재현하는 [최소, 완료 및 확인 가능] (http://stackoverflow.com/help/mcve) 예제와 함께 해당 질문을 \ [편집]해야합니다. 디버거. –
mod 연산자로 이것을 해결해야만하는 특별한 이유가 있습니까? 이것은 그것을하는 이상한 방법으로 보인다 ... –
나는 mod 연산자를 사용하는 비슷한 운동을했다. –