7-7 6翻了

简介: 7-7 6翻了

“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

今天看了一道链表的题,接下来是我对这道题的详细分析:

       首先创建了两个指针p和q,先利用 函数gets_s()函数输入字符串(我用的时vs2022,如果使用DEV是gets();再让p和q指向字符串a。先利用while循环判断结束条件,每次让count=0,再创建一个额外的字符串b[]当*p!=‘6’(这里必须时‘6’而不是6,因为在字符串中是char类型的)时b【j】=*q;在对指针进行移动,当*p==‘6’时对等于’6‘的进行计数,有超过 3 个连续的 6,则将这串连续的 6 替换成 9;但如果有超过 9 个连续的 6,则将这串连续的 6 替换成 27,小于等于3个时利用for循环对其进行输出字符‘6’;再对i进行修正。b[i]='\0'是一个结束标志,由于定义变量时个数过多,且p指向‘\0'直接结束故加上这一步让输出时有结束标志。

以下是详细代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    char a[10000], b[10000];
    gets(a);
    char* p, * q;
    int count = 0, i = 0, j = 0;
    p = a;
    q = a;
    while (*p != '\0')
    {
        count = 0;
        if (*p != '6')
        {
            b[i] = *p;
            p++; q++; i++;
        }
        while (*p == '6')
        {
            p++;
            count++;
        }
        if (count > 3 && count < 9)
        {
            b[i] = '9';
            q++;
            i++;
        }
        if (count >= 9)
        {
            b[i] = '2';
            b[i + 1] = '7';
            i = i + 2;
            q++;
            q++;
        }
        if (count <= 3)
        {
            for (j = 0; j < count; j++)
            {
                b[i + j] = '6';
            }
            i = i + count;
        }
    }
    b[i] = '\0';
    printf("%s", b);
    return 0;
}

     

           这就是我对这道题的分析,以及代码,希望各位一键三连

目录
相关文章
L1-058 6翻了 (15 分)(while的巧妙使用)
L1-058 6翻了 (15 分)(while的巧妙使用)
62 0
Pta L1-058 6翻了
输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。
58 0
蓝桥杯:翻硬币
蓝桥杯:翻硬币
67 0
|
算法
费解的开关/翻硬币
费解的开关/翻硬币
115 0
熄灯问题 && 飞行员兄弟 && 翻棋子
熄灯问题 && 飞行员兄弟 && 翻棋子
L1-058 6翻了 (15 分)
L1-058 6翻了 (15 分)
160 0
L1-058 6翻了 (15 分)
|
缓存 Java Spring
每天一个小题目,你废了吗?
每天一个小题目,你废了吗?
|
程序员 测试技术 Go
程序猿被打扰了n次后,直接翻桌子
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群