andre_joy

导航

USACO namesum

题意:将数字转换成对应的字母。

mark:把字典里面的数全部存在数组里面,然后每输入一次搜索一遍,看是否存在该数。

代码:

/*
ID: andre_j2
LANG: C
TASK: namenum
*/
#include <stdio.h>
#include <string.h>

char a[5010][15],b[5010][15];

main () {
    FILE *fdict = fopen("dict.txt", "r");
    FILE *fin = fopen("namenum.in", "r");
    FILE *fout = fopen("namenum.out", "w");
    char m[15];
    char s[27] = "22233344455566670778889990";
    int n;
    int i,j,f;
    n = 0;
    while(fscanf(fdict, "%s", a[n++]) != EOF) ;
    for(i = 0 ; i < n; i++)
    {
        for(j = 0; a[i][j]; j++)
            b[i][j] = s[a[i][j] - 'A'];
        b[i][j] = '\0';
    }
    fscanf(fin, "%s", m);
    for(i = f = 0; i < n; i++)
        if(!strcmp(b[i], m))
        {
            f = 1;
            fprintf(fout, "%s\n", a[i]);
        }
    if(!f) fprintf(fout, "NONE\n");
    exit (0);
}

posted on 2012-07-09 15:24  andre_joy  阅读(120)  评论(0编辑  收藏  举报