PTA 7 您所在的位置:网站首页 thu英语简写 PTA 7

PTA 7

#PTA 7| 来源: 网络整理| 查看: 265

PTA 7-372 打印某月份日历

分数 10 作者 巨同升 单位 山东理工大学

编程序实现:输入任意一个年份、月份,输出该月份的公历日历(要求用循环控制打印)。

提示:

1.先求出从公元1年1月1日到这个月的1日总共有多少天,并求出这个月的1日是星期几。

2.可以将每个月的天数存入一个数组中,但是不需要将一个月的每一天存入数组中。

常见问题:

1.如何控制某个月1日的打印位置?

答:先由程序计算出来该月份的1日是星期几,然后控制在打印“1”之前打印相应个数的空格。

2.如何控制每周和每月的打印换行?

答:可以根据当前这一天的打印位置控制每周的打印换行,并根据该月份的总天数控制每月的打印换行。

输入格式: 输入年份、月份,数据之间以空格分隔。

输出格式: 每项数据占4个字符宽度,右对齐。

输入样例: 2019 10 输出样例: Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB

#include int main(){ int arr1[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int i = 0; int year = 0; int month = 0; int days = 0; int week = 0; //判断第一天周几 scanf("%d %d", &year, &month); if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0)){ //判断是否是闰年 arr1[2] = 29; //闰年2月29天 } for (i = 0; i 0}; for (i = 0; i //把输入月份的每一天放到数组中 arr2[i] = arr2[i-1]+1; } int count = 0; //记录已打印几个数据,打印7个数据就换行 i = week; int flag = 1; //用于记录是否为第一行,第一行不能用count计数方式换行 while(i printf("%4d", arr2[i]); if (flag == 7 - week) //打印够数据后换行 printf("\n"); flag++; }else{ printf("%4d", arr2[i]); count++; if (count == 7){ count = 0; printf("\n"); } } i++; } return 0; }

解题思路: step1:判断输入的年份是否闰年; step2:计算输入月份的第一天是该年的第几天; step3:计算输入月份的第一天是星期几; step4:输出

归属知识点: 数组 循环结构 选择结构



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有