南阳理工oj-273 字母小游戏

字母小游戏

时间限制: 1000 ms  |  内存限制: 65535 KB 
难度: 0
描述 
给你一个乱序的字符串,里面包含有小写字母(a--z)以及一些特殊符号,请你找出所给字符串里面所有的小写字母的个数, 拿这个数对26取余,输出取余后的数字在子母表中对应的小写字母(0对应z,1对应a,2对应b....25对应y)。
输入
第一行是一个整数n(1
输出
输出对应的小写字母 每个小写字母单独占一行
样例输入
2
asdasl+%$^&ksdhkjhjksd
adklf&(%^(alkha
样例输出
q
j

代码:

#include 
int count(char str[]){
    int num=0,i;
    for (i=0; str[i]; i++) {
        if (97<=str[i]&&str[i]<=122) {
            num++;
        }
    }
    return num;
}
void input(int m){
    if (!m) {
        printf("z\n");
    }
    else{
        printf("%c\n",m+96);
    }
}
int main(){
    int n,m;
    char str[200];
    scanf("%d",&n);
    while (n--) {
        scanf("%s",str);
        m=count(str)%26;
        input(m);
    }
    return 0;
}

思路:首先要计算字符串中"a-z"的数量 所以定义了函数 count。for (i=0; str[i]; i++)的意思就是当str没有结束的时候就读入下一个str里的数据,如果str[i]在 "a-z"之间的 记录数字的num++。

然后在主函数中定义了变量m 用于计算对26取余之后的数。

最后定义input函数 当m==0是输出z,当m!=0时 输出  m+96  这是利用了,字符型和整形是通用的可以计算。

你可能感兴趣的:(南阳理工算法)