poj2608---几个字母映射到同一个数字

#include <stdio.h>

#include <stdlib.h>

#include<string.h>

int map[26]={0,1,2,3,0,1,2,0,0,2,2,4,5,5,0,1,2,6,2,3,0,1,0,2,0,2};

int main()

{

    char str[20];

    int i;

    while(scanf("%s",str) != EOF )

    {

        for(i=0; i < strlen(str); i++)

        {

            if(str[i] == 'A' ||str[i] == 'E'||str[i] == 'I'||str[i] == 'O'||str[i] == 'U'||str[i] == 'H'||str[i] == 'W'||str[i] == 'Y')

                continue;

            else

            {

                if(i == 0)

                    printf("%d",map[str[0] - 'A']);

                else

                {

                    if(map[ str[i] - 'A'] == map[ str[i-1] - 'A'])

                        continue;

                    else

                        printf("%d",map[str[i] - 'A']);

                }

            }

        }//for

        printf("\n");

    }

    return 0;

}
View Code

 

你可能感兴趣的:(poj)