仪器社区

c语言 编码问题 求解

heaven钟大帅 2018-11-23
描述为了Z大程度地节约存储空间,经常需要把信息进行编码。一种很有效的编码方法是用数字来表示一串字符。假设这些字符串都是由不重复的英文小写字母组成的,且每个字符串中的英文字母都是从小到大排列的。这个编码系统按照如下的方式工作:字符串是按照长度... 描述为了Z大程度地节约存储空间,经常需要把信息进行编码。一种很有效的编码方法是用数字来表示一串字符。假设这些字符串都是由不重复的英文小写字母组成的,且每个字符串中的英文字母都是从小到大排列的。这个编码系统按照如下的方式工作:字符串是按照长度从小到大的顺序排列的长度相同的字符串,是按照字典需排列的则根据这个编码系统,所有的字符串从 a 开始可以编码如下: a - 1 b - 2 ... z - 26 ab - 27 ... az - 51 bc - 52 ... vwxyz - 83681 ... 那么,请编程计算出一个字符串在这个编码系统下编码后的值是多少。输入输入的diyi行为 N,表示有 N 组数据。后面的 N 行每行包含一个不超过 10 个字母的字符串。输出输出字符串所对应的编码,如果该字符串不能被编码,则输出 0。 测SY例 1以文本方式显示 1↵ bf 输出55↵ 以下是我的程序,有一个保密的测SY例过不了,求指导 #include #include int main () { long long fac(int n,int m); int i,j,k,l,n,len; long long pos; char str[11]; char *p; scanf("%d\n",&n); for(i=1;i<=n;i++) { pos=0; for(p=str;(*p=getchar())!='\n';p++) if(*p==EOF) break; *p='\0'; for(p=str;*(p+1)!='\0'&&*p<*(p+1);p++); if(*(p+1)!='\0') { printf("0\n"); continue; } len=strlen(str); for(j=1;j
全部评论
您可能感兴趣的社区主题
加载中...
发布 评论