윤년인 년도만 쭈루룩 나오는 프로그램을 작성하는건데
int leap_year(int year) // 1번
{
do
{
int start, end;
printf("시작 년도 : ");
scanf("%d", &start);
printf("끝 년도 : ");
scanf("%d", &end);
if (start == 0 && end == 0)
return 0;
for (year = start; year <= end; year++)
{
if (year % 400 == 0)
printf("%d\n", year);
else if (year % 100 != 0)
{
if (year % 4 == 0)
printf("%d\n", year);
}
}
} while (1);
return year;
}
int main(void)
{
leap_year(0);
}
이런식으로 하긴 해서 제대로 나오긴 하는데
함수문을 쓴 의미가 없는 것 같음
int main(void) 문장에 다 지우고 그냥 저걸 적는거나 다름이 없어서;
내가 잘못한 것 같은 느낌이 팍팍뜸
어떤식으로 해야 아 이건 함수문을 썼다고 느낄 수 있음?
18개의 댓글
무분별한 사용은 차단될 수 있습니다.
댕떼닥추
겨털
그..위에 leap_year쓰고 밑에 main 함수 냅두면
main함수에서 변수 입력받으면
leap_year은 위에 위치 해 있으니까 초기화 되지 않은 지역변수라고 나옴
댕떼닥추
겨털
do while은 무한루프 돌리고 0 0 넣으면 종료하려구 넣었는뎅
댕떼닥추
겨털
그거 값을 정의하지 않았다는 말 아냐?.?
모쏠탈출
함수 하나당 기능 하나 라고 생각하면 됨. 그래서 이렇게 단순한 기능을 구현하는 프로그래밍에서는 함수가 무의미함. 좀 더 복합적인 기능을 하는 프로그램 구현에 도전해보렴.
겨털
배우는 입장이라서... 이것도 하고 넘어가야 해..
모쏠탈출
그러면 이렇게 단계를 나눠봐. Input - Function - Output. 현재 단계에서는 Input에 대한 건 main에서 처리해주고 해당 Input들을 함수로 넘겨서 Output을 내는 거지.
노농
main은 무조건 while(1)입니다.
겨털
무슨 소리 인지..??
노농
지금은 배우는 단계니까 한번만 하면 되는데 프로그램이 한번만 시작하고 끝나는게 아니자나?
그러니 초기화 하고 그 뒤 동작은 while(1)로 무한루프 돌리는거지
노농
그리고 지금 저거도 main에서 start, end를 scanf로 받고 함수에 start와 end를 argu로 던져도 되잖아?
굳이 year를 input으로 받을 필욘 없지
Tbps
int start, end;
printf("시작 년도 : ");
scanf("%d", &start);
printf("끝 년도 : ");
scanf("%d", &end);
를 메인으로 빼서 작성하면 됨
겨털
요거 해봤는데 메인이 밑에줄에 와서 그런가
함수쪽에서 에러남
Tbps
설마 진짜 고대로 옮기기만 한건 아니지??
입력받게할 변수을 전역변수로 하거나
입력받게할 변수를 전부 함수의 매개변수로 등록시켜야하는데
번째닉넴변경중
함수 쪼갤라면 인풋 계산 프린트를 다 함수로 하면되지
ㄱㄹㄷ
함수에 넣는 인자에 대해서 제대로 이해하지 못한거같은데