PTA12.09作业

简介: PTA12.09作业

void delchar(char* str, char c)
{
    char* p = str;
int i = 0;
while (*p)
{
    if (*p != c)
    str[i++] = *p;
    p++;
}
str[i] = '\0';
}

用一个指针遍历,遇到不是该字符的,就把它赋给str数组,让后让指针向后移动

void f( char *p )
{
    int left = 0, i = 0;
    for(i = 0;;i++)
    {
        if(*(p+i)=='\0')
            break;
    }
    int right = i - 1;
    while(left<right)
    {
        char ch = 0;
        ch = *(p+left);
        *(p+left) = *(p+right);
        *(p+right) = ch;
        left++;
        right--;
    }
}

这个就是给定一个左右指针,当左指针小于右指针时,进入循环,将左右两指针所指向空间中的元素进行交换,最后就可以得到字符串的逆序,当然Python中有现成的内置函数会更简单一点

int main()
{
    char str[30];
    gets(str);
    char* p = str;
    int i = 0;
    while (*p != '#')
    {
        if (*p >= 'A' && *p <= 'Z')
        {
            *p += 32;
            str[i++] = *p;
            p++;
        }
        else if (*p >= 'a' && *p <= 'z')
        {
            *p -= 32;
            str[i++] = *p;
            p++;
        }
        else
        {
            str[i++] = *p;
            p++;
        }
    }
    str[i] = '\0';
    printf("%s", str);
    return 0;
}

int main()
{
    char str[80], c;
    gets(str);
    scanf("%c",&c);
    int count = 0;
    char* p=str;
    while(*p)
    {
        if(*p == c)
            count++;
        p++;
    }
    printf("%d",count);
}

int is_shu(char* p)
{
    for (int i = 0; i < 17; i++)
    {
        if (*(p + i) <= '0' && *(p + i) >= '9')
        {
            return 0;
        }
    }
}
int Mod(char* p)
{
    int sum = 0;
    sum = ((*p)-'0') * 7 + (*(p + 1)-'0') * 9 + (*(p + 2)-'0') * 10 + (*(p + 3)-'0') * 5 + (*(p + 4)-'0') * 8 + (*(p + 5)-'0') * 4 + (*(p + 6)-'0') * 2 + (*(p + 7)-'0') * 1 + (*(p + 8)-'0') * 6 + (*(p + 9)-'0') * 3 + (*(p + 10)-'0') * 7 + (*(p + 11)-'0') * 9 + (*(p + 12)-'0') * 10 + (*(p + 13)-'0') * 5 + (*(p + 14)-'0') * 8 + (*(p + 15)-'0') * 4 + (*(p + 16)-'0') * 2;
    return sum % 11;
}
int True(char* p)
{
    if(is_shu(p))
        return 0;
    int ret = Mod(p);
    if (ret == 0)
    {
        if (*(p + 17) == '1')
            return 1;
        return 0;
    }
    if (ret == 1)
    {
        if (*(p + 17) == '0')
            return 1;
        return 0;
    }
    if (ret == 2)
    {
        if (*(p + 17) == 'X')
            return 1;
        return 0;
    }
    if (ret == 3)
    {
        if (*(p + 17) == '9')
            return 1;
        return 0;
    }
    if (ret == 4)
    {
        if (*(p + 17) == '8')
            return 1;
        return 0;
    }
    if (ret == 5)
    {
        if (*(p + 17) == '7')
            return 1;
        return 0;
    }
    if (ret == 6)
    {
        if (*(p + 17) == '6')
            return 1;
        return 0;
    }
    if (ret == 7)
    {
        if (*(p + 17) == '5')
            return 1;
        return 0;
    }
    if (ret == 8)
    {
        if (*(p + 17) == '4')
            return 1;
        return 0;
    }
    if (ret == 9)
    {
        if (*(p + 17) == '3')
            return 1;
        return 0;
    }
    if (ret == 10)
    {
        if (*(p + 17) == '2')
            return 1;
        return 0;
    }
}
int main()
{
    int n, a = 0, count = 0;
    char arr[20];
    scanf("%d", &n);
    getchar();
    a = n;
    while (n > 0)
    {
        gets(arr);
        if (True(arr))
            count++;
        else
        {
            printf("%s\n", arr);
        }
        n--;
    }
    if (count == a)
        printf("All passed");
}

这道题并不难,将它按题意拆解成一个一个的小问题即可,

1.判断这17位上是否都位数字

2.求这17位上的数字之和并%11

3.对照这个value判断最后一位上的数字是否正确,这一步用哈希表键值对,或者C++中的map最好,不过当时没有学

相关文章
|
消息中间件 存储 Kafka
【Kafka】Kafka 架构设计分析
【4月更文挑战第5天】【Kafka】kafka 架构设计分析
|
算法 调度
详解操作系统的调度
详解操作系统的调度
1072 0
|
存储 数据采集 数据挖掘
质量追溯系统方案
质量追溯系统方案
936 1
|
4月前
|
JavaScript
1.2 NodeJS安装
本节介绍Node.js的安装方法,可通过官网或本地安装包进行。安装时需选择无空格的英文路径,并参考手册完成。安装后通过“win+R→cmd→node -v”命令验证环境,能输出版本号即成功,版本无需与示例一致。
|
4月前
|
Apache
Excel工具-HUTOOL-读取Excel
基于Hutool和Apache POI,封装Excel读取工具,支持读取为List、Map或Bean;提供SAX模式高效解析大文件,避免内存溢出,适用于Excel 2003/2007格式,支持按行处理数据。
181 0
|
SQL 分布式计算 数据处理
FlinkSQL开发经验分享
FlinkSQL开发经验分享
588 8
|
安全 架构师 中间件
5个人如何1年交付了120+项目?分享我在阿里云做交付的工作手记
谨以此文,分享一些我加入阿里云后,我和我所在团队的成长经历。这里既有我个人如何从程序员成长为一个技术经理,也有我的团队如何把事情越做越大的过程和思考,希望能够帮到有需要的人。
5个人如何1年交付了120+项目?分享我在阿里云做交付的工作手记
|
存储 Kubernetes 监控
Linux eBPF解析
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范围最广的 K8S CNI 网络方案 Calico 已宣布支持 eBPF,而作为第一个实现了Kube-Proxy 所有功能的 K8S 网络方案——Cilium 也是基于 eBPF 技术。因此,只有了解其底层机制,才能有助于更好、更易地融入容器生态中。
779 0
|
缓存 负载均衡 架构师
优化大型数据处理系统的性能:从设计到实施
在数据驱动的世界中,大型数据处理系统的性能对企业运营至关重要。本文将探讨如何通过优化设计、选择合适的技术栈以及实施高效的策略来提升数据处理系统的性能。我们将深入分析数据库设计优化、并发处理、数据缓存策略、和数据流管理等关键领域,提供实际案例和技术建议,以帮助开发人员和系统架构师构建高效、可扩展的数据处理系统。
|
人工智能
如何利用ai快速写汇报、方案、总结。
本文介绍了一套与AI有效沟通的方法,以生成符合需求的文章。通过构建【角色+背景+任务+要求】的提示词框架,并辅以调试优化,可显著提升AI输出内容的质量。角色设定应包括单位、身份与能力;背景描述需涵盖宏观、微观及受众层面;任务需界定清晰,并可细分为文本输出或立意构思;要求则涉及语言风格、字数限制及内容结构。通过不断调试,最终产出满足期望的文章。
1623 6

热门文章

最新文章