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最好,不过当时没有学

相关文章
|
1天前
|
数据采集 人工智能 安全
|
11天前
|
云安全 监控 安全
|
2天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
984 151
|
2天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1686 8
|
8天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
630 152
|
10天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
602 15
|
9天前
|
人工智能 自然语言处理 API
Next AI Draw.io:当AI遇见Draw.io图表绘制
Next AI Draw.io 是一款融合AI与图表绘制的开源工具,基于Next.js实现,支持自然语言生成架构图、流程图等专业图表。集成多款主流大模型,提供智能绘图、图像识别优化、版本管理等功能,部署简单,安全可控,助力技术文档与系统设计高效创作。
679 151