1)今天小白第一次蓝桥杯(第十一届),记录一下吧!
一.首先介绍一下c++数组初始化,下面的题目会用到,是一个小细节吧1
1.初始化int a[100] = {0};(因为是我学c语言是这样初始化的,但是有的oj网站会报错,所以建议使用第二种
2.memset();
使用实例:memset(a,0,sizeof(a)); //将数组的所有元素初始化为0;
二.介绍一下getline()的用法
1.常用方法getline(cin,str,’#‘); 从cin流读取到str字符串,包含头文件<string.h>。读取结束要么一行要么读取到换行或者读取到#字符(可选)。
2.这是我今天没写出这道题的关键(c语言的读取有点遗忘,c++还没来的及记清)。
2)题目描述:大概里面印象就是读取一行字符串然后,出现过几种字符就得几分。
直接上代码
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
//输入一行小写字母,输入的有多少种字符,就得多少分 例如:a,b,c,a = 3 a,a = 1;
int main(){
string s;
int score;
getline(cin,s);
int a[30];//记录每个字符的出现
memset(a,0,sizeof(a));
for(int i=0;i<sizeof(s)-1;i++){
if(s[i]>='a' && s[i]<='z'){ //判断字符是否为小写字母
if(a[int(s[i]-'a')]==0 ){//判断该字符是否出现过
a[s[i] - 'a'] =1;
score++;
}
}
if(score>=26) break;
}
cout<<score;
return 0;
}
3)总结
一.今天第一次参加比赛感受,在那个地方写代码和自己平常写真的一点都不一样,有点紧张,而且带着口罩快闷死了(心疼医疗工作者)。
二.今天这道题我写了一半,没写完,忘了getline咋用尴尬。不过感觉这种写法会超时,没试过。
三.感觉主要无论什么考试对于我这种小白,主要大部分还是考基础,打好基础,加油!
四,感谢看完,都要加油,下次再来