这个练习题要怎么做??第八题

img

第八题,就是当数据超过z了要怎么再回到a这边
y+3到b是怎么实现的
假如k很大,我可以%26取余来算嘛

 
#include <stdio.h>
int main() {
    char c;//字符c
    int k;   //整数k
    scanf("%c,%d", &c, &k);//获取用户输入,英文逗号隔开
    printf("%c\n", (c + k) % 'a' + 'a');//c+k表示对应ASCLL码,再模上字符a对应的ASCLL码,就是解决了超出z的问题,最后加上字符a对应的ASCLL码

//说明:字符和整型之间是可以进行运算的,运算时字符就会转换成相对应的ASCLL码值
 
    return 0;
}
#include <stdio.h>
int main()
{
    char ch;
    int k;
    scanf("%c%d",&ch,&k);
    ch =  (ch-'a'+k)%26+'a';
    printf("%c",ch);
    return 0;
}


#include <stdio.h>

int main() {
    char ch;
    int k;
    scanf("%c%d", &ch, &k);
    printf("%c\n", (ch + k) % 'a' + 'a');

    return 0;
}
 
#include <stdio.h>
 
int main() {
    char c = 0;
    int k = 0;
    scanf("%c%d", &c, &k);
    printf("%c\n",(c-'a'+k)%26+'a'
    return 0;
}

#include<stdio.h> 
#include <ctype.h>
int main() 
{ 
 int i,k; 
 char ch[81]; 
 gets(ch);     //写入字符串
 scanf("%d",&k); 
 for(i=0;ch[i];i++) 
  if(isupper(ch[i]))    //判断是否为大写字母
    ch[i]=(ch[i]-'A'+k)%26+'A'; 
  else if(islower(ch[i]))     //判断是否为小写字母
  ch[i]=(ch[i]-'a'+k)%26+'a'; 
 puts(s);   //写出字符串
 return 0; 
}