我是一个c++萌新,自学了一个月多点,大一的时候上过一点c语言,我现在想用c++来判断一个身份证号时候合法,因为我很垃圾嘛,所以我想让大家尽情的指出我的不足和错误,我写的这个也是不全的,先用生日来判断合法但是我这个不知道我的错误在哪,基本上是自己瞎写的
using namespace std;
void happy(int month[2], int a, int day[2], int year[4], int carry1) {
a = month[0] * 10 + month[1]; if (month[0] < 10 && month[1] < 3)
{
switch (a) {
case 1:if (day[0] < 4 || day[0] == 3 && day[1] < 2) { cout << "合法"; }
else { cout << "不合法"; }break;
case 2:if (carry1 % 4 == 0 && carry1 % 100 != 0 || carry1 % 400 == 0) {
if (day[0] < 3 || day[0] == 2 && day[1] < 9) { cout << "合法"; }
else { cout << "不合法"; }
}
else { cout << "不合法"; }
if (day[0] < 3 || day[0] == 2 && day[1] < 8) { cout << "合法"; }
else { cout << "不合法"; }break;
case 3:if (day[0] < 4 || day[0] == 3 && day[1] < 2) { cout << "合法"; }
else { cout << "不合法"; }break;
case 4:if (day[0] < 4 || day[0] == 3 && day[1] < 1) { cout << "合法"; }
else { cout << "不合法"; }break;
case 5:if (day[0] < 4 || day[0] == 3 && day[1] < 2) { cout << "合法"; }
else { cout << "不合法"; }break;
case 6:if (day[0] < 4 || day[0] == 3 && day[1] < 1) { cout << "合法"; }
else { cout << "不合法"; }break;
case 7:if (day[0] < 4 || day[0] == 3 && day[1] < 2) { cout << "合法"; }
else { cout << "不合法"; }break;
case 8:if (day[0] < 4 || day[0] == 3 && day[1] < 2) { cout << "合法"; }
else { cout << "不合法"; }break;
case 9:if (day[0] < 4 || day[0] == 3 && day[1] < 1) { cout << "合法"; }
else { cout << "不合法"; }break;
case 10:if (day[0] < 4 || day[0] == 3 && day[1] < 2) { cout << "合法"; }
else { cout << "不合法"; }break;
case 11:if (day[0] < 4 || day[0] == 3 && day[1] < 1) { cout << "合法"; }
else { cout << "不合法"; }break;
case 12:if (day[0] < 4 || day[0] == 3 && day[1] < 2) { cout << "合法"; }
else { cout << "不合法"; }break;
}
}
else { cout << "不合法"; }
};
struct year1
{
int 省编码[4];
int 城市编码[2];
int year[4];
int month[2];
int day[2];
int ccc[4];
};
int main(){
struct year1 身份证号;
for (int i = 0; i < 5; i++)
{
cin >> 身份证号.省编码[i];
}
for (int i = 0; i < 3; i++)
{
cin >> 身份证号.城市编码[i];
}
for (int i = 0; i < 5; i++)
{
cin >> 身份证号.year[i];
}
for (int i = 0; i < 3; i++)
{
cin >> 身份证号.month[i];
}
for (int i = 0; i < 3; i++)
{
cin >> 身份证号.day[i];
}
for (int i = 0; i < 5; i++)
{
cin >> 身份证号.ccc[i];
}
int a;
int carry;
happy(身份证号.year[4],a, 身份证号.day[4], 身份证号.year[4],carry);}