C언어 도움 좀 부탁합니다 ㅠ..

  • issuemine
    issuemine

    MAXSUM 문제를 풀고 있는데 입력을 받을 때 몇개의 숫자를 입력받는지

    모르는 상황에서(나중에 케이스에 대한 입력갯수는 정해짐)

    scanf를 통해서 띄어쓰기 단위로 숫자를 입력 받을 수 있나요?

    띄어쓰기로 해도 갑이 들어가지긴 하지만 채점을 할때 이 부분에서

    런타임에러가 뜨더라고요. 예를 들어 4개의 숫자를 입력한다고 정해주고

    1 2 3 4 이런식으로 입력할때

    scanf("%d",배열변수명); 배열번호++ 이런식으로 해놓고 입력하면

    숫자먼저 들어가고 배열이 증가하여서 메모리누수 때문에 에러가 뜨는

    듯하네요. 어떻게 깔끔하게 처리하는 법 없나요? ㅠㅠ....


    8년 전
3개의 댓글이 있습니다.
  • hyunhwan
    hyunhwan

    그냥 동적 배열을 쓰시지 말고, 문제 제약 조건의 크기 만큼 1차원 배열을 할당하신 다음, 거기다가 입력을 저장하고 처리를 하는 법을 권장합니다.


    8년 전 link
  • JongMan
    JongMan

    질문이 잘 이해가 안가네용.. orz
    그나저나 소스코드를 봤는데, 케이스 하나 입력받고, 답 출력하고, 케이스 하나 입력받고, 답 출력하고 하셔도 됩니다. 입력 처음에 다받을 필요 없어요~


    8년 전 link
  • redglim
    redglim

    질문을 맞게 이해한 것인지 모르겠습니다만,
    보통 이렇게 하지 않나요?
    for (i=0;i<n;i++){
    scanf("%d",&input[i]);
    }


    8년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.