2020-04-29

我是一个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);
原创文章 2 获赞 1 访问量 34

猜你喜欢

转载自blog.csdn.net/qq_47469499/article/details/105846134