1. 程式人生 > >SDUT_2015寒假集訓_結構體練習_D-來淄博旅遊

SDUT_2015寒假集訓_結構體練習_D-來淄博旅遊

zoucheng : skym pc
beijing : plmm qq
jinan : moon
shanghai : von
zichuan : pc qq
linzi : skym
zhoucun :
boshan : plmm moon von


這題就是一步步的來,先把不同的from城市名按順序存在另一個數組中,然後把原from城市名與後來存的城市名一個個地比較,分類輸出,與分類遊戲那一題的感覺差不多。

程式碼

#include <stdio.h>
#include <string.h>

struct tourist
{
    char name[25];
    char from[25];
    char to[25];
}info[10000];

int main()
{
    int n,i,j,m=0;
    char s[10000][25];
    char str[4][25]={"zichuan","linzi","zhoucun","boshan"};
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%s %s %s",info[i].name,info[i].from,info[i].to);
        for(j=0;j<m;j++)
        {
            if(strcmp(info[i].from,s[j])==0)
                break;
        }
        if(j==m)
        strcpy(s[m++],info[i].from);
    }
    for(i=0;i<m;i++)
    {
        printf("%s :",s[i]);
        for(j=0;j<n;j++)
        {
            if(strcmp(s[i],info[j].from)==0)
            {
                printf(" %s",info[j].name);
            }
        }
        printf("\n");
    }
    for(i=0;i<4;i++)
    {
        printf("%s :",str[i]);
        for(j=0;j<n;j++)
        {
            if(strcmp(str[i],info[j].to)==0)
            {
                printf(" %s",info[j].name);
            }
        }
        printf("\n");
    }
    return 0;
}