ACM程序设计书中题目--J(大写字母的更替)
2017-03-07 22:28
316 查看
题目大意:首先输入一个n,然后接下来n行每一行输入一串由不多于50个
4000
大写字母组成的字符串,将字符串中的每一个字母都依次变为其下一个字母,例:A->B,C->D,以此类推,Z->A。
解题思路:
1、该题是多组测试数据,且每组测试数据的字符串数量确定,所以先输入n,之后用while(cin>>n)。
2、因为有大量的测试数据,所以应用结构体,首先要把每组测试数据中的字符串进行输入,即构建一个结构体,应用char型数组,输入测试数据。
3、对于每组测试数据,由于字母的变换规律相同,所以很容易想到应用字符的ACSII码值,即对于一个数组内所有的字母,除Z之外的,均可以直接将该字母+1,得到新的字母,而Z则-25,完成对字符串的变换。
4、对结构体内字符数组的输出,用循环,逐个输出。要注意的是,样例输出中的String #1中间有空格,所以输出要控制格式。
源代码
#include <bits/stdc++.h>
using namespace std;
struct aaa //定义结构体
{
char a[50];
}b[10000];
int main()
{
int i,n,l,j;
while(cin>>n) //输入n
{
for (i=1;i<=n;i++)
{
cin>>b[i].a; //输入字符串
for (j=0;j<(int)strlen(b[i].a);j++) //字符串内字母的变换
{
if (b[i].a[j]=='Z')
b[i].a[j]=b[i].a[j]-25;
else
b[i].a[j]=b[i].a[j]+1;
}
}
for (i=1;i<=n;i++) //输出
{
cout<<"String #"<<i<<endl; //注意这里的空格
for (j=0;j<(int)strlen(b[i].a);j++)
cout<<b[i].a[j];
cout<<endl<<endl;
}
}
return 0;
}
做题感想:在一个自认为比较难的题没有解决之后,做了这个还是比较简单的题。这个题因为粗心提交错了好几遍,主要文体出现在了字母的变换以及输出的格式。之前几次提交错误是因为Z变A的时候粗心写成了-26,应该是-25,输出的格式首先第一点是每组样例后都有一行空格,其次string和#之间有空格,这些都是不应该出现的问题。虽然A了,但是以后还是要注意避免这些不该出现的错误。不过总算做出来一个,虽然比较简单但是还是比较开心的。
4000
大写字母组成的字符串,将字符串中的每一个字母都依次变为其下一个字母,例:A->B,C->D,以此类推,Z->A。
解题思路:
1、该题是多组测试数据,且每组测试数据的字符串数量确定,所以先输入n,之后用while(cin>>n)。
2、因为有大量的测试数据,所以应用结构体,首先要把每组测试数据中的字符串进行输入,即构建一个结构体,应用char型数组,输入测试数据。
3、对于每组测试数据,由于字母的变换规律相同,所以很容易想到应用字符的ACSII码值,即对于一个数组内所有的字母,除Z之外的,均可以直接将该字母+1,得到新的字母,而Z则-25,完成对字符串的变换。
4、对结构体内字符数组的输出,用循环,逐个输出。要注意的是,样例输出中的String #1中间有空格,所以输出要控制格式。
源代码
#include <bits/stdc++.h>
using namespace std;
struct aaa //定义结构体
{
char a[50];
}b[10000];
int main()
{
int i,n,l,j;
while(cin>>n) //输入n
{
for (i=1;i<=n;i++)
{
cin>>b[i].a; //输入字符串
for (j=0;j<(int)strlen(b[i].a);j++) //字符串内字母的变换
{
if (b[i].a[j]=='Z')
b[i].a[j]=b[i].a[j]-25;
else
b[i].a[j]=b[i].a[j]+1;
}
}
for (i=1;i<=n;i++) //输出
{
cout<<"String #"<<i<<endl; //注意这里的空格
for (j=0;j<(int)strlen(b[i].a);j++)
cout<<b[i].a[j];
cout<<endl<<endl;
}
}
return 0;
}
做题感想:在一个自认为比较难的题没有解决之后,做了这个还是比较简单的题。这个题因为粗心提交错了好几遍,主要文体出现在了字母的变换以及输出的格式。之前几次提交错误是因为Z变A的时候粗心写成了-26,应该是-25,输出的格式首先第一点是每组样例后都有一行空格,其次string和#之间有空格,这些都是不应该出现的问题。虽然A了,但是以后还是要注意避免这些不该出现的错误。不过总算做出来一个,虽然比较简单但是还是比较开心的。
相关文章推荐
- ACM程序设计书中题目L
- ACM程序设计 书中题目O(map统计字符串出现的次数)
- ACM程序设计 书中题目Y
- ACM程序设计书中题目--N(数字反转)
- ACM程序设计 书中题目U(美丽的数字)
- ACM程序设计 书中题目Z
- ACM程序设计书中题目--B(字典问题)
- 2012年"浪潮杯"山东省第三届ACM大学生程序设计竞赛 The Best Seat in ACM Contest 看清题目后,我是真哭了。。。。。
- ACM程序设计书中题目O
- ACM程序设计书中题目--P(粮食问题)
- 关于acm程序设计书中题目 #H 第8题
- acm程序设计书中题目第s题解析
- ACM程序设计 书中题目N(翻转数字)
- ACM程序设计书中题目V
- ACM程序设计书中题目--L(字符逆序输出)
- ACM程序设计书中题目--T(次方问题)
- ACM程序设计 书中题目L
- 关于acm程序设计书中题目 #J #K #L
- ACM程序设计书中题目--E(DNA sorting)
- ACM程序设计书中题目--X(电话号码序列)