2018普及组——标题统计&龙虎斗

1.标题统计

题目链接
没什么好说的,直接输入,统计非空字符的个数。

<法一>

需要注意的是,这里不能直接用scanf("%s")或cin输入字符串,因为这两种方式是碰到空格或换行停止输入,而输入的标题是可能包含空格的,所以我们在这里用getline来输入。
getline用途:字面意思,获取一行(的字符),而不是遇到空格停止输入。
getline语法结构: g e t l i n e ( c i n , s t r i n g 的 名 称 ) getline(cin,string的名称) getline(cin,string)

代码:

#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int ans;
string s;
int ck(char c){
	//其实这里写麻烦了,直接判断是否为空格,是返回0,否则返回1就行了。
	if(c>='0'&&c<='9')return 1;
	if(c>='a'&&c<='z')return 1;
	if(c>='A'&&c<='Z')return 1;
	return 0;
}
int main(){
	getline(cin,s);
	for(int i=0;i<s.length();++i)
		ans+=ck(s[i]);
	printf("%d",ans);
	return 0;
}
<法二>

直接用判断是否为文件末尾决定是否继续输入,理由同上。因为用 c i n cin cin 输入单个字符会自动过滤空格,本人懒得多写一个判断,就用 c i n cin cin 啦~

代码:

#include<iostream>
using namespace std;
char c;
int ans;
int main(){
	while(cin>>c)ans++;
	cout<<ans;
	return 0;
}

2.龙虎斗

题目链接
一道简单的模拟(因为做了15分钟只得了52分,所以划掉)。、

我们来捋一捋。

Step 1:输入(这不废话吗)
Step 2:计算龙方气势与虎方气势

别忘了加上天降神兵!(过来人的忠告)

Step 3:i~n循环模拟,计算p2。

每次循环新建两个临时变量分别储存当p2==i时的龙方气势与虎方气势,用变量cha储存它们差的绝对值最小值,如当前两个临时变量之差的绝对值小于cha,更新cha=当前临时变量之差的绝对值,p2=i。

代码:
对了,注意long long!!!(还是过来人的忠告)
不知为何,用 scanf("%lld") 输入就只有80分(好像跟直接用%d输入错的是一样的点???),而用cin就过了???
知道原因的大佬麻烦在评论区告诉我一声,Thanks♪(・ω・)ノ


都看完了你还没有动静,难不成是想白嫖?
要赞赞

posted @ 2020-08-29 00:26  XSC062  阅读(60)  评论(0编辑  收藏  举报