11.7-01统计数字字符的个数。 输入一行字符,统计出其中数字字符的个数。 输入 一行字符串,总长度不超过255。 输出 输出为1行,输出字符串里面数字字符的个数。 样例输入 Peking University is set up at 1898. 样例输出 4 分析: 1)用gets来输入字符串(因为串可能有空格),到字符数组a中 2)遍历数组for(i=0;i<strlen(a,i+)∥strlen(a)为求字符串的长度,也就是字符的个数 3)字母的判断条件:c门>='a&&c<='zlc问>='A'&&c[可<=Z 4)数字的判断条件:c[>=0'&&c[]<=9 5)统计个数:cnt=cnt+1; #include <iostream> using namespace std; int main() char c[300]; int nNum=0:/存储数字个数 int i; gets(c); for(i=0;c[0=0';i+) { ifc[>=0'&&c[<='9) nNum ++ } cout<<nNum
1 1.7 --01 统计数字字符的个数。 输入一行字符,统计出其中数字字符的个数。 输入 一行字符串,总长度不超过 255。 输出 输出为 1 行,输出字符串里面数字字符的个数。 样例输入 Peking University is set up at 1898. 样例输出 4 分析: 1)用 gets 来输入字符串(因为串可能有空格),到字符数组 a 中 2)遍历数组 for(i = 0 ; i < strlen(a); i ++) // strlen(a)为求字符串的长度,也就是字符的个数 3)字母的判断条件:c[i] >= 'a' && c[i] <= 'z' ||c[i] >= 'A' && c[i] <= 'Z' 4)数字的判断条件:c[i] >= '0' && c[i] <= '9' 5)统计个数: cnt = cnt + 1; #include <iostream> using namespace std; int main() { char c[300]; int nNum = 0;//存储数字个数 int i; gets(c); for( i = 0 ; c[i] != '\0'; i ++) { if( c[i] >= '0' && c[i] <= '9') { nNum ++; } } cout << nNum ; }
21.7-33判断回文 描述 输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。 输入 输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。 输出 如果字符串是回文,输出yes:否则,输出no。 样例输入 abcdedcba 样例输出 yes #include<bits/stdc+.h>/IC+的万能头文件 using namespace std; int main() { char a[101]; gets(a)月 int ij; int n,x; n strlen(a); x=1; for(i=0.j=n-1;i<=j;i+j-) if(afil!=alil) X=0: break: if(x =1) cout <"yes"<endl: } if(x=0)
2 1.7-- 33 判断回文 描述 输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。 输入 输入为一行字符串(字符串中没有空白字符,字符串长度不超过 100)。 输出 如果字符串是回文,输出 yes;否则,输出 no。 样例输入 abcdedcba 样例输出 yes #include <bits/stdc++.h> //C++的万能头文件 using namespace std; int main() { char a[101]; gets(a); int i,j; int n,x; n = strlen(a); x = 1; for(i = 0,j = n-1; i <= j ; i ++,j--) { if( a[i] != a[j]) { x = 0; break; } } if( x == 1) { cout << "yes" << endl; } if( x == 0)
cout <"no"<<endl: 31.7-05输出亲朋字符串 输出亲朋字符串 描述 编写程序,求给定字符串s的亲朋字符串s1。 亲朋字符串s1定义如下:给定字符串s的第一个字符的ASCI值加第二个字符的ASCⅡ值, 得到第一个亲朋字符:给定字符串s的第二个字符的ASCI值加第三个字符的ASCI值, 得到第二个亲朋字符:依此类推,直到给定字符串s的倒数第二个字符。亲朋字符串的最后 一个字符由给定字符串s的最后一个字符ASCⅡ值加s的第一个字符的ASCI值。 输入 输入一行,一个长度大于等于2,小于等于100的字符串。字符串中每个字符的ASCⅡ值不 大于63。 输出 输出一行,为变换后的亲朋字符串。输入保证变换后的字符串只有一行。 样例输入 1234 样例输出 cege #include<bits/stdc+.h>/C++的万能头文件 using namespace std; int main() char a[101]; char b[101]; gets(a); int len strlen(a); for(int i=0:i<=len-2 :i+) b[i]=ali]+ali+1]; } b[len-1]=aflen-1]+a[0]; b[len]=0';结束符号不要掉了
{ cout << "no" << endl; } } 3 1.7--05 输出亲朋字符串 输出亲朋字符串 描述 编写程序,求给定字符串 s 的亲朋字符串 s1。 亲朋字符串 s1 定义如下:给定字符串 s 的第一个字符的 ASCII 值加第二个字符的 ASCII 值, 得到第一个亲朋字符; 给定字符串 s 的第二个字符的 ASCII 值加第三个字符的 ASCII 值, 得到第二个亲朋字符;依此类推,直到给定字符串 s 的倒数第二个字符。亲朋字符串的最 后 一个字符由给定字符串 s 的最后一个字符 ASCII 值加 s 的第一个字符的 ASCII 值。 输入 输入一行,一个长度大于等于 2,小于等于 100 的字符串。字符串中每个字符的 ASCII 值不 大于 63。 输出 输出一行,为变换后的亲朋字符串。输入保证变换后的字符串只有一行。 样例输入 1234 样例输出 cege #include <bits/stdc++.h> //C++的万能头文件 using namespace std; int main() { char a[101] ; char b[101]; gets(a); int len = strlen(a); for(int i = 0 ; i <= len-2 ;i ++) { b[i] = a[i]+ a[i+1]; } b[len-1] = a[len-1]+a[0]; b[len] = '\0'; //结束符号不要掉了
cout <b <<endl: 41.7-04石头剪子布 描述 石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不 断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任 何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古 老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。 游戏规则:石头打剪刀,布包石头,剪刀剪布。 现在,需要你写一个程序来判断石头剪子布游戏的结果。 输入 输入包括N+1行: 第一行是一个整数N,表示一共进行了N次游戏。1=N<=100。 接下来N行的每一行包括两个字符串,表示游戏参与者Playerl,Player.2的选择(石头、剪 子或者是布): S1 S2 字符串之间以空格隔开Sl,S2只可能取值在"Rock","Scissors","Paper"}(大小写敏感)中。 输出 输出包括N行,每一行对应一个胜利者(Player1或者Player2),或者游戏出现平局,则输 出Tiea 样例输入 3 Rock Scissors Paper Paper Rock Paper 样例输出 Player1 Tie Player2 #include<bits/stdc+.h>/lC++的万能头文件 using namespace std; int main() { int n; char s1[20],s2[20]; cin >>n: int i;
cout << b <<endl; } 4 1.7--04 石头剪子布 描述 石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不 断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任 何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古 老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。 游戏规则:石头打剪刀,布包石头,剪刀剪布。 现在,需要你写一个程序来判断石头剪子布游戏的结果。 输入 输入包括 N+1 行: 第一行是一个整数 N,表示一共进行了 N 次游戏。1 <= N <= 100。 接下来 N 行的每一行包括两个字符串,表示游戏参与者 Player1,Player2 的选择(石头、剪 子或者是布): S1 S2 字符串之间以空格隔开 S1,S2 只可能取值在{"Rock", "Scissors", "Paper"}(大小写敏感)中。 输出 输出包括 N 行,每一行对应一个胜利者(Player1 或者 Player2),或者游戏出现平局,则输 出 Tie。 样例输入 3 Rock Scissors Paper Paper Rock Paper 样例输出 Player1 Tie Player2 #include <bits/stdc++.h> //C++的万能头文件 using namespace std; int main() { int n; char s1[20],s2[20]; cin >> n; int i;
for(i=1;i<=n;i++) cin >>s1 >>s2; if(s1[0]=R'&&s2[0]=S) ‖(s1[0]='S&&s2[0]=P) ‖(s1[0]=P&&s2[0]=R) ∥只需判断第一个字母 cout <"Playerl"<<endl; else if(s1[0]=s2[0]) { cout <"Tie"<<endl: } else { cout<<"Player2"<<endl; 51.7-03:基因相关性 描述 为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对, 以判断该比对的DNA是否具有相关性。 现比对两条长度相同的DNA序列。首先定义两条DNA序列相同位置的碱基为一个碱基对, 如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基 对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不 相关。 输入 有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列 (长度不大于500)。 输出 若两条DNA序列相关,则输出“yes”,否则输出“no”。 样例输入 0.85 ATCGCCGTAAGTAACGGTTTTAAATAGGCC
for(i = 1; i <= n ;i ++) { cin >>s1 >>s2; if( (s1[0] == 'R' && s2[0] == 'S') || (s1[0] == 'S' && s2[0] == 'P') || (s1[0] == 'P' && s2[0] == 'R')) //只需判断第一个字母 { cout << "Player1"<<endl; } else if( s1[0] == s2[0]) { cout << "Tie"<<endl; } else { cout << "Player2"<<endl; } } } 5 1.7--03: 基因相关性 描述 为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的 DNA 进行比对, 以判断该比对的 DNA 是否具有相关性。 现比对两条长度相同的 DNA 序列。首先定义两条 DNA 序列相同位置的碱基为一个碱基对, 如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基 对数量的比例,如果该比例大于等于给定阈值时则判定该两条 DNA 序列是相关的,否则不 相关。 输入 有三行,第一行是用来判定出两条 DNA 序列是否相关的阈值,随后 2 行是两条 DNA 序列 (长度不大于 500)。 输出 若两条 DNA 序列相关,则输出“yes”,否则输出“no”。 样例输入 0.85 ATCGCCGTAAGTAACGGTTTTAAATAGGCC