>

사용자 입력을 기반으로 배열을 인쇄하는 프로그램을 만들려고합니다. 어레이는 0에서 시작하여 사용자가 입력 한 수로 확장해야합니다. 따라서 사용자가 5를 입력하면 배열 값은 [0] [1] [2] [3] [4] [5]가됩니다. 어떤 이유로 든 내 코드는 0을 출력합니다.

#include <iostream>
using namespace std;
int main() {
cout << "Enter the value of n: ";
int n;
cin >> n;
int *arr1 = new int[n];
for(int i = 0; i < n; i ++){
    arr1[i] = 0;
}
cout << *arr1 << endl;
delete [] arr1;
return 0;
}

  • 답변 # 1

    코드에 버그가 거의 없습니다.

    n = 5 일 때 출력이[0] [1] [2] [3] [4] [5]이 될 것으로 예상합니다. 따라서 출력에는 (n + 1) 개의 요소가 있습니다. . 따라서 배열에도 (n + 1) 개의 요소가 있어야합니다.

    int *arr1 = new int[n + 1];
    
    

    코드에서 배열의 각 요소에 0을 할당합니다. 그러나 배열에는 0, 1, 2, .., n이 포함될 것으로 예상됩니다.

    for(int i = 0; i < n + 1; i++){
      arr1[i] = i;
    }
    
    

    코드에서 첫 번째 요소 만 인쇄합니다. * arr1은 arr1 [0]과 같습니다. 따라서 배열의 각 요소를 인쇄하려면 다른 for 루프가 필요합니다.

    for(int i = 0; i < n + 1; i++){
      cout << "[" << arr1[i] << "]" << endl;
    }
    
    

    n = 5 일 때[0] [1] [2] [3] [4] [5]출력을 얻습니다

관련 자료

  • 이전 java - 서명 된 X509Certificate 및 PrivateKey를 Android에 저장
  • 다음 Git-TFS를 사용하여 히스토리로 TFS를 GitHub에 복제하는 방법은 무엇입니까?