首页 > 其他分享 >L1-058 6翻了

L1-058 6翻了

时间:2024-08-11 14:54:22浏览次数:11  
标签:count 字符 27 输出 else 计数 058 L1

666.JPG

“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

C语言: 

最外层for循环遍历存储字符串的数组a

for循环内进行判断,如果是字符6则count进行计数,如果不是字符6则跳转到else

else内部是if判断语句,如果count>9则输出27,如果>3则输出9,如果不符合这两项则按照count累计的个数循环输出字符6

如果count值为0,则说明未曾计数,则按照原样对字符进行输出不需要有改动

注:最外层的for循环条件中最大值需要有等号:for(i=0;i<=strlen(a);i++)

因为count计数截止的标志是读取到的字符不为6,所以,当6出现在语句最末尾时需要读入终止字符“\0”来终止count计数,否则当i循环到最大值后会直接跳出for循环,直接跳转到return 0,漏掉这段字符6的计数。

#include <stdio.h>
#include <string.h>
int main()
{
	char a[1001];
	gets(a);
	int i,count=0,j=0;
	for(i=0;i<=strlen(a);i++)
	//此处for的最大值需要等于strlen(a)因为count计数截至的标志是读取到的字符不为6
	//因此需要将\0遍历进来以此结束count的计数 
	{
		if(a[i]=='6')
		{//如果字符是6,count会累计数量,如果字符不是‘6’会跳转到else 
			count++;
		}
		else
		{
			if(count>9)
			{
				printf("27");
			}
			else if(count>3)
			{
				printf("9");
			}
			else
			{//如果不满足count>9或者count>3则对字符‘6’按照count累计的数量进行输出, 
				for(j=0;j<count;j++)
				{
					printf("6");
				}
			}
			count=0;
			printf("%c",a[i]);
			//如果字符不是‘6’而且count值仍旧为0则对该字符进行原样输出 
		}
	}
	printf("\n");
	return 0;
}

标签:count,字符,27,输出,else,计数,058,L1
From: https://blog.csdn.net/m0_55661792/article/details/141105803

相关文章

  • PostgreSQL15.6源码编译安装
    1.postgres数据库源码下载地址,自己选择对应版本,我这里是15.6https://www.postgresql.org/ftp/source/2.编译cd/data/make/postgresql-15.6./configure--prefix=/pgdata/postgres15make-j$(nproc)#加快编译速度,自动获取对应cpu核心数makeinstall3.创建postgres用户......
  • JavaL1-07_综合练习
    练习一:需求:    机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。    按照如下规则计算机票的价格:旺季(5~10月)头等舱9折,经济舱8.5折,淡季(11月~来年4月)头等舱7折,经济舱6.5折。代码示例:packagecom.itheima.test;importj......
  • C++竞赛初阶L1-10-第四单元-if练习(第24课)100015: 判断能否被 3,5,7 整除
    题目内容给定一个整数 x,判断它能否被 3,5,7 整除,并输出以下信息:1、能同时被 3,5,7 整除(直接输出 357,每个数中间一个空格);2、只能被其中两个数整除(按从小到大的顺序输出两个数,例如:35 或者 37 或者 57,中间用空格分隔);3、只能被其中一个数整除(输出这个除数);4、不能......
  • L1-048 矩阵A乘以B 分数 15
    //10'42"#include<iostream>usingnamespacestd;constintN=110;intarr[N][N];intbrr[N][N];intcrr[N][N];intmain(){intx1,y1;cin>>x1>>y1;for(inti=1;i<=x1;++i)for(intj=1;j......
  • C++竞赛初阶L1-05-第四单元-判断语句(第19课)100003: 最大数输出
    题目内容输入三个整数,输出最大的数。输入格式输入为一行,包含三个整数,数与数之间以一个空格分开。输出格式输出一行,包含一个整数,即最大的整数。样例1输入102056样例1输出56程序代码输出:#include<bits/stdc++.h>usingnamespacestd;intmain(){ inta,b,c......
  • L1-030 一帮一 分数 15
    //11'52"#include<iostream>#include<vector>usingnamespacestd;intmain(){intn;cin>>n;vector<pair<int,string>>qian;vector<pair<int,string>>hou;for(inti=1;i<=......
  • L1-020 帅到没朋友 分数 20
    有前导零,末尾不能有空格,会卡格式//17'05"#include<bits/stdc++.h>usingnamespacestd;intmain(){map<string,bool>hash;intn;cin>>n;for(inti=1;i<=n;++i){intk;cin>>k;......
  • L1-016 查验身份证 分数 15
    小错不断,简直灾难//14'52"#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongintarr[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};signedmain(){intn;cin>>n;map<int,char>map;map.insert({0,......
  • L1-006 连续因子
    暴力即可,考虑从2到sqrt(n)作为连续因子里的最小因子。//5'10"#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;intres=1;intnum=n;for(inti=2;i<=n/i;++i){if(n%i!=0)continue;......
  • L1-002 打印沙漏
    重点找递推公式,推导层数//8'39"#include<iostream>#include<cmath>usingnamespacestd;intmain(){intn;cin>>n;charc;cin>>c;intcur=1;for(inti=0;i<=n;++i)if(2*(i*i)......