C++ 一个月有30天,这个月有5个星期六和星期天 问:这个月1号是星期几

思考题01:

一个月有30天,这个月有5个星期六和星期天
问:这个月1号是星期几


本文代码仓库地址: gitee码云CSDN笔记仓库地址

刚才刷 抖Y 的时候,刷到了有人问提出这个问题,看了一下评论区,感觉还可以,需要思考一下,最初没有准备拿起电脑的,只在脑袋里面想了想,用手机记录一下,写一点思路,发现通了,这不行,忍不住,这得拿电脑试一试,然后就是下面的结果了,手机上面的思路在最后面附图


#include <iostream>
using namespace std;

int main() {
	/* 思考题01
	 * 一个月有30天,这个月有5个星期六和星期天
	 * 问:这个月1号是星期几
	 */

	// 统计这个月星期六有几天
	int count1 = 0;
	// 统计这个月星期天有几天
	int count2 = 0;
	// 数组中的数字分别代表星期天到星期六的每一天
	int arrXQ[7] = { 7,1,2,3,4,5,6 };
	// 定义一个长度为30的数组,来存放这30天的每天是星期几
	int arrY[30];
	// day 代表一个星期中的某一天
	int day = 0;
	// 1号可能为一个星期的任何一天,这里循环7次
	for (int i = 0; i < 7; i++)
	{
		// day 代表一个星期中的某一天
		day = i;
		// 为这30天中的每一天赋值,看是星期几
		for (int j = 0; j < 30; j++)
		{
			// 给这30天赋值【例如:7代表星期天】
			arrY[j] = arrXQ[day];
			// 判断这一天是不是星期六
			if (arrY[j] == 6)
			{
				// 是就进行统计+1
				count1++;
			}
			// 判断这一天是不是星期天
			if (arrY[j] == 7)
			{
				// 是就进行统计+1
				count2++;
			}
			// 每次循环都让星期改变成为下一天的星期
			day++;
			// 判断星期【因为数组取参数【星期】的时候是从0开始的,所以最后的下标为6,因为这判断在day++之后,所以是day=7的时候需要重新赋值为0】
			if (day == 7)
			{
				day = 0;
			}
		}
		// 当30天都赋值完成后判断星期六和星期天的天数是不是都有5天
		if (count1 == 5 && count2 == 5)
		{
			// 如果是就打印出来
			cout << "这个月的一号是星期" << arrY[0] << endl;
			// 并且跳出循环
			break;
		}
		else
		{
			// 如果不是,就需要初始化统计值 count1和count2
			count1 = 0;
			count2 = 0;
		}
	}

	cout << endl;
	system("pause");
	return 0;
}

在这里插入图片描述


一点点笔记,以便以后翻阅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小印丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值