創建日歷,
輸入年號 則輸出一整年的日歷
輸入年號和月份,則輸出當年當月的日歷
uj5u.com熱心網友回復:
格式化輸入(判斷是年+月還是年)->用年號算是不是閏年->在2維陣列中生成日歷->根據第一部輸出(回圈陣列)uj5u.com熱心網友回復:
可以大概給個流程圖看看嗎
uj5u.com熱心網友回復:
#include <algorithm>
void SplitString(const string& s, vector<string>& v, const string& c)
{
string::size_type pos1, pos2;
pos2 = s.find(c);
pos1 = 0;
while(string::npos != pos2)
{
v.push_back(s.substr(pos1, pos2-pos1));
pos1 = pos2 + c.size();
pos2 = s.find(c, pos1);
}
if(pos1 != s.length())
v.push_back(s.substr(pos1));
}
...
cout<<"輸入格式yyyy-mm or yyyy";
string f;
int year;
bool y=false;
cin>>f;
if(f.find("-")==f.npos){//有月份
y=true;
}else{
year=f;
}
bool r=false;
if(year%4==0&&year%100!=0||year%400==0) b=true;//閏年
cout<<
if(!y){
for(int i=1;i<=12;i++){
cout<<endl<<i<<"月"<<endl;
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
for(int n=1;n<=31;n++) cout<<n<<" ";
break;
case 2:
if(r)
for(int n=1;n<=29;n++) cout<<n<<" ";
else
for(int n=1;n<=28;n++) cout<<n<<" ";
break;
case 4:
case 6:
case 9:
case 11:
for(int n=1;n<=30;n++) cout<<n<<" ";
break;
}
}
}
if(y){
vector<string> v;
SplitString(f, v,"-");
year=v[0];
int i=v[1];
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
for(int n=1;n<=31;n++) cout<<n<<" ";
break;
case 2:
if(r)
for(int n=1;n<=29;n++) cout<<n<<" ";
else
for(int n=1;n<=28;n++) cout<<n<<" ";
break;
case 4:
case 6:
case 9:
case 11:
for(int n=1;n<=30;n++) cout<<n<<" ";
break;
}
}
return 0;
參考
https://zhidao.baidu.com/question/2201844490211422628.html
https://www.cnblogs.com/yuehouse/p/10230589.html
隨便寫的 可能有bug
uj5u.com熱心網友回復:
格式化輸入(判斷是年+月還是年)->用年號算是不是閏年->在2維陣列中生成日歷->根據第一部輸出(回圈陣列)
可以大概給個流程圖看看嗎
#include <algorithm>
void SplitString(const string& s, vector<string>& v, const string& c)
{
string::size_type pos1, pos2;
pos2 = s.find(c);
pos1 = 0;
while(string::npos != pos2)
{
v.push_back(s.substr(pos1, pos2-pos1));
pos1 = pos2 + c.size();
pos2 = s.find(c, pos1);
}
if(pos1 != s.length())
v.push_back(s.substr(pos1));
}
...
cout<<"輸入格式yyyy-mm or yyyy";
string f;
int year;
bool y=false;
cin>>f;
if(f.find("-")==f.npos){//有月份
y=true;
}else{
year=f;
}
bool r=false;
if(year%4==0&&year%100!=0||year%400==0) b=true;//閏年
cout<<
if(!y){
for(int i=1;i<=12;i++){
cout<<endl<<i<<"月"<<endl;
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
for(int n=1;n<=31;n++) cout<<n<<" ";
break;
case 2:
if(r)
for(int n=1;n<=29;n++) cout<<n<<" ";
else
for(int n=1;n<=28;n++) cout<<n<<" ";
break;
case 4:
case 6:
case 9:
case 11:
for(int n=1;n<=30;n++) cout<<n<<" ";
break;
}
}
}
if(y){
vector<string> v;
SplitString(f, v,"-");
year=v[0];
int i=v[1];
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
for(int n=1;n<=31;n++) cout<<n<<" ";
break;
case 2:
if(r)
for(int n=1;n<=29;n++) cout<<n<<" ";
else
for(int n=1;n<=28;n++) cout<<n<<" ";
break;
case 4:
case 6:
case 9:
case 11:
for(int n=1;n<=30;n++) cout<<n<<" ";
break;
}
}
return 0;
參考
https://zhidao.baidu.com/question/2201844490211422628.html
https://www.cnblogs.com/yuehouse/p/10230589.html
隨便寫的 可能有bug
uj5u.com熱心網友回復:
好的,謝謝謝謝uj5u.com熱心網友回復:
里面省略了很多行 像什么int main和宣告命名域和頭檔案
格式化輸入(判斷是年+月還是年)->用年號算是不是閏年->在2維陣列中生成日歷->根據第一部輸出(回圈陣列)
可以大概給個流程圖看看嗎
#include <algorithm>
void SplitString(const string& s, vector<string>& v, const string& c)
{
string::size_type pos1, pos2;
pos2 = s.find(c);
pos1 = 0;
while(string::npos != pos2)
{
v.push_back(s.substr(pos1, pos2-pos1));
pos1 = pos2 + c.size();
pos2 = s.find(c, pos1);
}
if(pos1 != s.length())
v.push_back(s.substr(pos1));
}
...
cout<<"輸入格式yyyy-mm or yyyy";
string f;
int year;
bool y=false;
cin>>f;
if(f.find("-")==f.npos){//有月份
y=true;
}else{
year=f;
}
bool r=false;
if(year%4==0&&year%100!=0||year%400==0) b=true;//閏年
cout<<
if(!y){
for(int i=1;i<=12;i++){
cout<<endl<<i<<"月"<<endl;
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
for(int n=1;n<=31;n++) cout<<n<<" ";
break;
case 2:
if(r)
for(int n=1;n<=29;n++) cout<<n<<" ";
else
for(int n=1;n<=28;n++) cout<<n<<" ";
break;
case 4:
case 6:
case 9:
case 11:
for(int n=1;n<=30;n++) cout<<n<<" ";
break;
}
}
}
if(y){
vector<string> v;
SplitString(f, v,"-");
year=v[0];
int i=v[1];
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
for(int n=1;n<=31;n++) cout<<n<<" ";
break;
case 2:
if(r)
for(int n=1;n<=29;n++) cout<<n<<" ";
else
for(int n=1;n<=28;n++) cout<<n<<" ";
break;
case 4:
case 6:
case 9:
case 11:
for(int n=1;n<=30;n++) cout<<n<<" ";
break;
}
}
return 0;
參考
https://zhidao.baidu.com/question/2201844490211422628.html
https://www.cnblogs.com/yuehouse/p/10230589.html
隨便寫的 可能有bug
謝謝謝謝??
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/41186.html
標籤:C++ 語言
上一篇:一道難題,求大佬幫助
下一篇:數字識別器
