视频学习:03-字符串和日期练习_哔哩哔哩_bilibili
Q:恋爱纪念日
int day[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
int main() {
int y, m, d, k;
scanf_s("%d%d%d%d", &y, &m, &d, &k);
for (int i = 1; i <= k; i++) {
if ((y % 100 != 0 && y % 4 == 0) || y % 400 == 0) { //修改月份天数
day[2] = 29;
}
else {
day[2] = 28;
}
d++;
if (d == day[m] + 1) {
d = 1; m++;
}
if (m == 13) {
m = 1;
y++;
}
}
printf("%04d-%02d-%02d\n", y, m, d);
return 0;
}
Q:节假日
#include<string>
#include<string.h>
#include<iostream>
#include<stdio.h>
using namespace std;
int mm[10] = { 1,5,10,10,10,12 };
int dd[10] = { 1,1,1,2,3,25 };
int day[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
void nextday(int& y, int& m, int& d) {
d++;
if (d == day[m] + 1) {
d = 1;
m++;
}
}
int main() {
int y, m, d, w, sp, ans;
cin >> y;
if ((y % 400 == 0) || (y % 100 != 0 && y % 4 == 0))
day[2] = 29;
for (int i = 6; i < 10; i++) {
cin >> mm[i] >> dd[i];
}
cin >> w;
m = 1; //初始化
d = 1;
sp = 0; //是否是春节,后面手动输入的唯一一个要放三天
ans = 0;
while (m < 13) { //先判断是不是节日,不是节日再判断是不是双休
if (m == mm[6] && d == dd[6]) {
ans++;
sp = 2;
}
else if (sp) {
ans++;
sp--;
}
else if (w == 6 || w == 7) {
ans++;
}
else {
for (int i = 0; i < 10; i++) { //是不是节日
if (m == mm[i] && d == dd[i]) {
ans++;
break;
}
}
}
nextday(y, m, d);
w++;
if (w == 8) {
w = 1;
}
}
cout << ans << endl;
return 0;
}
Q:最长字符串
S:输入字符串
string s;
getline(cin,s);
!!不能是cin>>s(因为cin遇到空格会停止读入)