求解答一下初学者的练习题

题目如下:
提示用户输入三个整数,分别代表年月日。例如输入12,31,2003,程序就以31st December 2003的格式输出该日期。日期后面需要有th,nd,st和rd,例如1st,2nd,3rt。求大神解答

#include <iostream>
using namespace std;
int main()
{
    char mon[12][] = {"January","February","March","April","May","June","July","August","September","October","November","December"};
    char day[10][] = {"","th","nd","rd"}; //后面的自己补充全即可
    int y,m,d;
    scanf("%d,%d,%d",&y,&m,&d); //年月日,不是这个顺序的话自己调整
    printf("%d%s %s %d",d,day[d%10],mon[m-1],y);
    return 0;
}