按出生年月日对身份证号进行排序

//按出生日期将身份证号进行排序
#include"stdio.h"
#include"string.h"
struct student
{ 
	int no;
	char id[19];
};
int main()
{ 
	struct student x[10] = { 
		{  101, "342423199109172672" },
		{  103, "320114199408113316" },
		{  105, "222403199301092354" },
		{  107, "341122199411113215" },
		{  108, "34242319930521717X" },
		{  102, "220122199209270016" },
		{  104, "370282199401084613" },
		{  106, "21042319931101321X" },
		{  109, "341523199310115711" },
		{  110, "232332199309260613" }
	};
	int i, j;
	struct student tmp;//临时变量 排序的时候用

	//排序
	for (i = 0; i < 9; i++)//选择排序
	{ 
		for (j = i + 1; j < 10; j++)
		{ 
			if (strcmp(x[i].id + 6, x[j].id + 6)>0)//x[i].id访问的是数组名 +6是使指针向右偏移6位 指向年龄
			{ 
				tmp = x[i];//对结构体进行排序,交换变量名就行了
				x[i] = x[j];
				x[j] = tmp;
			}
		}
	}
	for (i = 0; i < 10; i++)
	{ 
		printf("%d,%s\n", x[i].no, x[i].id);
	}
}
    原文作者:彭就是我的姓i
    原文地址: https://blog.csdn.net/m0_56698045/article/details/119304241
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞