2015NOIP普及组初赛完善程序一

日历图在这里
https://oitiku.sh1a.qingstor.com/4.jpg

#include<iostream>
using namespace std;
const int dayNum[]={-1,31,28,31,30,31,30,31,31,30,31,30,31};
int m, offset, i;
int main()
{
    cin >> m;
    cout <<"S    M    T    W    T    F    S"<<endl;//'    '为tab制表符
    ①;
    for (i = 1; i < m; i++)
        offset = ②;
    for (i = 0; i < offset; i++)
        cout <<'    ';
    for (i = 1; i <= ③;i++)
    {
        cout << ④;
        if(i==dayNum[m]||⑤==0)
            cout << endl;
        else
            cout << '    ';
    }
    return 0;
}

答案

填空位置 ①:

offset = 4

填空位置 ②:

(offset + dayNum[i]) % 7

填空位置 ③:

dayNum[m]

填空位置 ④:

i

填空位置 ⑤:

(offset + i) % 7
求解填空①、②、⑤解析过程