提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
PTA练习
一、字母串
题目:英语老师要求学生按照如下规则写一串字母:
如果写了某个大写字母,下一个就必须写同个字母的小写,或者写字母表中下一个字母的大写;
如果写了某个小写字母,下一个就必须写同个字母的大写,或者写字母表中前一个字母的小写;
当然也可以什么都不写,就结束这个字母串。
例如 aAaABCDdcbBC 就是一个合法的字母串;而 dEFfeFGhI 就是非法的。注意 a 没有前一个字母, Z 也没有下一个字母。
现在面对全班学生交上来的作业,老师请你写个程序自动批改。
输入测试案例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int n;
scanf("%d",&n);
char arr[2000001]; //创建符合题目上限的数组
while(n)
{
scanf("%s",arr);
int sz = strlen(arr);
getchar(); //吸收回车字符
// puts(arr);
int i;
int pd = 0;
for(i=0;arr[i+1]!='\0';i++)
{
if('A'<=arr[i]&&arr[i]<='Z') { //输入是大写字母时
if((arr[i+1]==arr[i]+32)||(arr[i+1]==arr[i]+1)) {
continue;
} else{
pd=1;
break;
}
}
if('a'<=arr[i]&&arr[i]<='z') //输入是小写字母时
{
if(arr[i+1]==arr[i]-32||arr[i+1]==arr[i]-1)
{
continue;
} else {
pd=1;
break;
}
}
}
if(pd==1) {
printf("N\n");
} else {
printf("Y\n");
}
n--;
}
return 0;
}
二、英文字母替换加密
本题要求编写程序,将英文字母替换加密。为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。变换规则是:将明文中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母。例如,字母a->B、b->C、…、z->A、A->b、B->c、…、Z->a。输入一行字符,将其中的英文字母按照以上规则转换后输出,其他字符按原样输出。
#include <stdio.h>
#include <string.h>
int main()
{
char arr[100];
gets(arr);
int i;
for(i=0;arr[i]!='\0';i++)
{
if(arr[i]>='a'&&arr[i]<='z') {
arr[i]='A'+(arr[i]-'a')+1; //A+其小写字母到a的距离=其本身大写字母,然后+1
if(arr[i]>'Z') arr[i] = 'A';
} else if(arr[i]>='A'&&arr[i]<='Z') {
arr[i]='a'+(arr[i] - 'A')+1;
if(arr[i]>'z') arr[i] = 'a';
} else {
;
}
}
puts(arr);
return 0;
}