공부요새 통아에 안하다가 뭐라고 끄적여보고싶어서 백준 기초문제 풀어보고있는데
https://www.acmicpc.net/problem/1924
아래는 내가작성한것
#include <iostream>
int cal(int m)
{
int day = 0;
int arr[12] = { 0,31,28,31,30,31,30,31,31,30,31,30 };
for (int i = 0; i < m; i++)
day += arr[i];
return day;
}
int main()
{
int month, day;
scanf("%d %d", &month, &day);
char* result[7] = { "MON","TUE","WED","THU","FRI","SAT","SUN" };
printf("%s", result[((cal(month) + day) % 7) -1]);
return 0;
}
VS에서 돌려보면 잘만되거든? 결과도 맞고 1월1일부터 12월 31일까지 전부다 잘댐;;
근데 뭐가 문제인지 백준사이트에서 해보면 런타임에러가난다는데... 이게 에러가 무슨에러가 나는질모르니;; 뭐가문제일까...
보기좋게..줄여서
#include <iostream>
int main()
{
int month, day;
scanf("%d %d", &month, &day);
char* result[7] = { "MON","TUE","WED","THU","FRI","SAT","SUN" };
int arr[12] = { 0,31,28,31,30,31,30,31,31,30,31,30 };
int calday = 0;
for (int i = 0; i < month; i++)
calday += arr[i];
printf("%s", result[((calday + day) % 7) -1]);
return 0;
}
이렇게해도 안되긴 마찬가지.. 내꺼에선 결과가 맞게잘나오는디..
요약 : 개쉬운문제임 개쉽게 잘풀었음 / 내꺼에서잘됨 결과도 다맞음 / 근데 백준사이트에서 런타임에러라는데 뭐가뜨는지 왜뜨는지 알수가없음
x % 7 이면 0 ~ 6 까지 거기서 1 을 빼면?
허거걱
그리고 0을 더할 필요가 있나...
시험삼아 넣어본것들이 전부 7의배수가아니여서 VS에서도 오류가안났던거구나...
쉬운 문제라도 조금이라도 재활용성 있어보이면 재활용 가능하게 짜세유~
런타임 오류라면 메모리를 쳤단 말이니까, 포인터 ( 혹은 상수 포인터인 배열 ) 건드리는 부분만 보면 바로 보일터 : )
char* result[7] = {"SUN","MON","TUE","WED","THU","FRI","SAT" };이렇게고치고 printf("%s", result[((calday + day) % 7)]);하니 맞다고나오네용.. 하도오랜만에 만지니 이런짓을다..