网页视频怎么下载到本地手机,深圳seo优化公司唯八seo,青海建设网站价格低,适合穷人的18个创业项目投资小前言#xff1a;内容包括#xff1a;题目#xff0c;代码实现#xff0c;大致思路#xff0c;代码解读
题目#xff1a; “666”是一种网络用语#xff0c;大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”#xff0c;意思是“6翻了”#xff0…前言内容包括题目代码实现大致思路代码解读
题目 “666”是一种网络用语大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”意思是“6翻了”实在太厉害的意思。如果你以为这就是厉害的最高境界那就错啦 —— 目前的最高境界是数字“27”因为这是 3 个 “9”
本题就请你编写程序将那些过时的、只会用一连串“6666……6”表达仰慕的句子翻译成最新的高级表达。
输入格式
输入在一行中给出一句话即一个非空字符串由不超过 1000 个英文字母、数字和空格组成以回车结束。
输出格式
从左到右扫描输入的句子如果句子中有超过 3 个连续的 6则将这串连续的 6 替换成 9但如果有超过 9 个连续的 6则将这串连续的 6 替换成 27。其他内容不受影响原样输出。
输入样例
it is so 666 really 6666 what else can I say 6666666666输出样例
it is so 666 really 9 what else can I say 27 代码实现
#includestdio.h
int main()
{char arr[1001] { 0 };gets(arr);int len strlen(arr);int count 0;int i 0;for (i 0; i len; i){if (arr[i] 6){count;}else{if (count 9){printf(27);}else if (count 3){printf(9);}else{int j 0;for(j0;jcount;j){printf(6);}}count 0;printf(%c, arr[i]);}}return 0;
}
大致思路
1 将字符串存入字符数组中遍历整个字符串包括字符串的结束标志\0
2 若是当前字符是字符6则计数一次若是当前字符不是字符6则需要打印出此字符 因为6是连续的故而计数6的个数的结束标志是当前遍历到的某个元素不是字符6 因此当连续的几个6排在一串字符的末尾时我们需要遍历到\0,才能判定6的连续结束
3 在打印此字符之前我们需要先打印出27 or 9 或者连续的6个数不大于3个 一旦打印出27 or 9 或者连续的6个数不大于3个后需要将统计的6个数清零
代码解读
part 1 char arr[1001] { 0 };gets(arr);int len strlen(arr);int count 0;
需要用gets读取带有空格的字符串
求出字符串的长度len此时len就是字符串的结束标志\0的下标
part 2遍历字符串统计6的个数 int i 0;for (i 0; i len; i){if (arr[i] 6){count;}else{if (count 9){printf(27);}else if (count 3){printf(9);}else{int j 0;for(j0;jcount;j){printf(6);}}count 0;printf(%c, arr[i]);}}