
程序代码:
#include <stdio.h>
#include <string.h>
void main()
{
int i, j, n;
int map[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,13,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,11,0,0,0,0,0,10,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,};
char result[4096][4] = {0};
int count[4096] = {0};
char pk[1024][4];
printf("请输入序列个数:");
scanf("%d", &n);
printf("请输入所有序列:\n");
for (i=0; i<n; i++)
{
scanf("%s", pk[i]);
}
for (i=0; i<n; i++)
{
j = (map[pk[i][0]]<<8) | (map[pk[i][1]]<<4) | (map[pk[i][2]]);
memcpy(result[j], pk[i], 4);
count[j]++;
}
for (i=0; i<4096; i++)
{
if (result[i][0])
{
for (j=0; j<count[i]; j++)
{
printf("%s ", result[i]);
}
}
}
printf("\n");
}