프로그래밍 질문드려요
- 2014.11.05. 01:02
- 1020
#include <stdio.h>
int scan(int a[ ],int max_n)
{
int i, n;
scanf("%d", &n);
if(n>max_n) n=max_n;
for(i=0; i<n && !(scanf("%d", &a[i])!=1);++i);
return n;
}
void print(int a[ ],int n)
{
int i;
for(i=0;i<n;++i)
printf("%d ", a[i]);
printf("\n");
}
int main(void)
{
int a[5];
int max_n=5, n;
n = scan(a,max_n);
print(a,n);
return 0;
}
입출력결과가 4 /n 11 22 33 ctrl + Z 누르면 11 22 33 이 나와야 되는데 마지막에 garbage 값이 나오네요..
조건에서 명시된 길이와 실제 길이가 다를 경우 둘 중 최소값을 수열의 길이로 정함
이라고 나와있는데 이 조건 식을 옮기는 부분에서 오류인 거 같은데 어떻게 고쳐야 되는지 아시는 분 계시나요?
인덴트 못 맞춰서 죄송합니다.. ㅠㅠ
이 댓글을 삭제하시겠습니까?
[글쓴이]님의 댓글을 신고합니다.
이 댓글을 삭제하시겠습니까?
[엄격한 까마중]님의 댓글을 신고합니다.
개행이요 new line \n 는 문제 없어보입니다..
이 댓글을 삭제하시겠습니까?
[글쓴이]님의 댓글을 신고합니다.
이 댓글을 삭제하시겠습니까?
[엄격한 까마중]님의 댓글을 신고합니다.
이 댓글을 삭제하시겠습니까?
[글쓴이]님의 댓글을 신고합니다.
? scan(?, ?)
{
int i, n;
scanf("%d", &n);
if(?) ?;
for(i=0; ? && !(?);++i);
return ?;
}
? print(?, ?)
{
int i;
for(i=0;i<n;++i)
printf("%d ", a[i]);
printf("\n");
}
int main(void)
{
int a[5];
int max_n=5, n;
n = scan(?, ?);
print(?, ?);
return 0;
}
이게 문제 였고 ?를 채우는 문제 였는데 아무래도 if에서 틀린 거 같은데 ㅠ
이 댓글을 삭제하시겠습니까?
[글쓴이]님의 댓글을 신고합니다.
이 댓글을 삭제하시겠습니까?
[엄격한 까마중]님의 댓글을 신고합니다.
이 댓글을 삭제하시겠습니까?
[글쓴이]님의 댓글을 신고합니다.
컨트롤 Z눌렀을때의 갯수를 return 받아야지 입력받은 최소값을 리턴하면 안될것같네요
이 댓글을 삭제하시겠습니까?
[엄격한 까마중]님의 댓글을 신고합니다.
이 댓글을 삭제하시겠습니까?
[글쓴이]님의 댓글을 신고합니다.
이런 100라인도 안되는 코드는 직접 풀어봐야 자기 실력이 되는건데...
별로 안어려운거 같아서 풀어볼려다가 행라인 정리 안되어있어서 잔소리나 하고 갑니다 ㅋ
이 댓글을 삭제하시겠습니까?
[더러운 새머루]님의 댓글을 신고합니다.
return i 맞는듯... 마지막에 garbage값이 나온다는 건 값이 안 들어갔거나 길이가 잘못된 거네요. 여기선 후자
이 댓글을 삭제하시겠습니까?
[교활한 고구마]님의 댓글을 신고합니다.
이 게시물을 삭제하시겠습니까?





