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); }