c언어 질문이요
글쓴이: Aaqws / 작성시간: 일, 2017/10/08 - 10:37오후
int main(void) { int i; int arr[100]; double sum=0; int max; int min; int size; scanf("%d",&size); for(i=0;i<size;i++); { scanf("%d",&arr[i]); sum += arr[i]; } for(max=arr[100], min=arr[100],i=1; i<=9;i++) { if(max<arr[i]) { max=arr[i]; } if(min>arr[i]) min=arr[i]; } }
안녕하세요!처음 가입했습니다.일단 질문부터 하겠습니다.
초보라 잘 모르긴하는데... 구글을 뒤지면서 찾아가면서 해보긴했으나...
생각하는 대로 안되네요..
그 입력하는 숫자만큼 배열의 크기를 결정한다...랄까
배열에 100만큼 공간이 있는데 5를 입력하면 5만큼만 사용하는..
그리고 그 만큼 숫자를 받아서 평균 최대값 최소값 등등을 구하려 하는데
일단 숫자 받는것부터가 진행이 안되어서 뒤를 신경 쓸 새도 없네요..ㅠㅠ
이거 오늘안에 답해주실 수 있나요?ㅠㅠ
Forums:
오류 메세지가 C4996 'scanf': This function or variable may be unsafe
이렇게 시작하나요? 그럼 scanf_s를 써야합니다.
ㅇㅇ
으로 해보시면 어떤가요?
평소라면 이런 엉터리 질문에 대답하지 않겠지만 명절
평소라면 이런 엉터리 질문에 대답하지 않겠지만 명절 마지막 날이라(?) 대답해봅니다.
이 질문이 왜 엉터리인지 질문자께서는 좀 생각을 해보셔야 할 것 같습니다. 프로그래밍 수준과는 관계 없는 다른 문제입니다.
다른 한 편으로 어떤 교재를 가지고 공부하시길래 (또는 어떤 사람에게 배우길래) 2017년에 이런 오래된 스타일의 C 코드를 쓰는 지 답답하기도 하구요.
음... 불행히도 ms 컴파일러는 variable
음... 불행히도 ms 컴파일러는 variable length array를 지원하지 않습니다. 아마도 이 코드를 컴파일하지 못할겁니다. 테스트는 안해봤습니다만.
저도 비주얼 스튜디오가 없어서 테스트를 해볼 수는
저도 비주얼 스튜디오가 없어서 테스트를 해볼 수는 없는데 검색을 해보니 정말 그런 것 같군요. 그렇다면 혹시 질문자께서 비주얼 스튜디오를 사용하실 경우를 대비해서 답변을 다시 마무리해보겠습니다.
간단히
으로 바꿔주면 됩니다. 단, 입력 받은 size가 100보다 크면 다시 입력을 받거나 에러 메세지를 내고 종료하는 코드가 추가되어야겠지요. 이건 질문자께서 해보시기를.
다른 방법으로
와 같이 바꾸는 방법도 있습니다. malloc에 대해서는 역시 공부를 해보시면 되겠지요.
댓글 달기