정말로 쉬운건데 배열에서 왜 제대로 입력이 안되죠?


쉬운질문 죄송합니다....

#include <stdio.h>
int bs[200]={0}, gs[200]={0};
int n, k;
int i, j;
int main(void)
{
    scanf("%d", &n);
    scanf("%d",&k);
    printf("%d", n);
    for(i=1;i<=n;i++){
        scanf("%d\n", &gs[i]);
    }
    for(i=1; i<=n; i++){
        printf("%d %d\n", gs[i], i);
    }
    return 0;
}
  • 2017년 08월 11일에 작성됨
    파이썬, c, c++

조회수 85


1 답변


초보자들이 많이 실수하는 것인데 scanf 함수 도움말을 잘 읽어보세요.

http://itguru.tistory.com/32

상기의 링크에 설명이 잘 되어 있네요.

숫자를 넣고 엔터를 치면 숫자만 버퍼에 저장되는 것이 아니라 엔터키도 버퍼에 들어가요.

즉 연이은 scanf 라면 첫번째에는 숫자 두번째에는 엔터키 값이 들어갑니다.

이런 것을 방지하면 버퍼를 비워주면 됩니다.

scanf 다음에 getchar 같은 것 한번 호출해주세요.

  • 2017년 08월 13일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close