1.读入
(1)scanf语句
格式: scanf("%s",字符串名称)
字符串名称前不加&
系统会在字符串后自动加上\0因此在输入时只需输入字符串的内容
无法输入空格,遇到空格自动断开
(2)gets语句
格式:gets(字符串名称)
gets只能读入一个字符串,能读入空格
2.输出
(1)printf语句
格式:printf("%s",字符串名称)
输出字符串而非数组中的元素
输出不包括\0
(2)puts语句
格式:puts(字符串名称)
01:统计数字字符个数
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
输入一行字符,统计出其中数字字符的个数。
输入
- 一行字符串,总长度不超过255。 输出
- 输出为1行,输出字符串里面数字字符的个数。 样例输入
-
Peking University is set up at 1898.
样例输出
-
4
来源
- 习题(7-1) 医学部 2010 期末试题 樊波
-
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; char a[10000]; int main() { int sum=0; gets(a); int l=strlen(a); for(int i=0;i<l;i++) { if(a[i]>='0'&&a[i]<='9') sum++; } printf("%d",sum); return 0; }
02:找第一个只出现一次的字符
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
输入
- 一个字符串,长度小于100000。 输出
- 输出第一个仅出现一次的字符,若没有则输出no。 样例输入
-
abcabd
样例输出
-
c
#include<iostream> #include<cstdio> #include<cstring> using namespace std; char a[100001],b[300]; int c[25]; int main() { gets(a); int l=strlen(a); for(int i=0;i<l;i++) b[a[i]]++; for(int i=0;i<l;i++) if(b[a[i]]==1) { printf("%c",a[i]); return 0; } printf("no"); return 0; }
03:基因相关性
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。
现比对两条长度相同的DNA序列。首先定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。
输入
- 有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大于500)。 输出
- 若两条DNA序列相关,则输出“yes”,否则输出“no”。 样例输入
-
0.85 ATCGCCGTAAGTAACGGTTTTAAATAGGCC ATCGCCGGAAGTAACGGTCTTAAATAGGCC
样例输出
-
yes
#include<cstdio> #include<string> #include<iostream> using namespace std; int main() { double a; scanf("%lf",&a); int i,p=0,len; double m; string s1,s2; cin>>s1; cin>>s2; int l1=s1.length(),l2=s2.length(); if(l1>12) len=l1; else len=l2; for(i=0; i<len; i++) { if(s1[i]==s2[i]) { p++; } } m=1.0*p/len; if(m>=a) cout<<"yes"<<endl; else cout<<"no"<<endl; return 0; }
04:石头剪子布
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。
游戏规则:石头打剪刀,布包石头,剪刀剪布。
现在,需要你写一个程序来判断石头剪子布游戏的结果。
输入
-
输入包括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
提示
-
Rock是石头,Scissors是剪刀,Paper是布。混混谔谔
#include<cstdio> #include<string> #include<iostream> using namespace std; int main() { int n; cin>>n; char a[500],b[500]; for(int i=0;i<n;i++) { cin>>a>>b; if(a[0]=='R'&&b[0]=='S'||a[0]=='S'&&b[0]=='P'||a[0]=='P'&&b[0]=='R') cout<<"Player1"<<endl; else if(a[0]==b[0]) cout<<"Tie"<<endl; else cout<<"Player2"<<endl; } return 0; }