1. 请问如何对这样一组IP地址排序?
95.243.188.67
102.107.11.122
93.131.2.17
95.243.188.67
96.96.12.138
100.181.237.106
223.155.40.25
95.243.188.67
102.107.11.122
93.131.2.17
95.243.188.67
96.96.12.138
100.181.237.106
223.155.40.25
method1:
#include <stdio.h>
#include <stdlib.h>
typedef int BYTE ;
typedef struct _IP {
BYTE seg[4];
struct _IP *next;
}IP;
int main()
{
int i, found;
IP *pip, *ptem, *pfind;
BYTE tem_ip[4];
// 循环链表尾指针
pip = (IP *)malloc(sizeof(IP));
pip->next = pip;
printf("Input IP address like:\n192.168.1.11\n10.10.128.11\n......\nInput '0.0.0.0' to end input\n");
while (1)
{
scanf("%d.%d.%d.%d", &tem_ip[0], &tem_ip[1], &tem_ip[2], &tem_ip[3]);
if (!(tem_ip[0] || tem_ip[1] || tem_ip[2] || tem_ip[3]))
break;
ptem = (IP *)malloc(sizeof(IP));
for (i = 0; i < 4; i++)
ptem->seg[i] = tem_ip[i];
found = 0;
pfind = pip;
while (pfind->next != pip)
{
for (i = 0; i < 4; i++)
{
if (ptem->seg[i] < pfind->next->seg[i])
{
found = 1;
break;
}
else if (ptem->seg[i] > pfind->next->seg[i])
{
break;
}
}
if (fo