C语言:初阶测试错题(查漏补缺)

题一:字符串倒置

示例1

输入

复制代码
I like beijing.

输出

复制代码
beijing. like I 

思路一:

定义字符串数组arr ,利用gets()将要倒置的字符串输入,记录字符串长度len ,此时写一个逆置函数Inversion() ,第一步将整个字符串逆置 ,然后再定义开始节点指针start() ,和走动节点指针cur() ,第二步:循环每次逆置一个单词,最后打印字符串。

cpp 复制代码
#include <stdio.h>
//字符串逆置
void Inversion(char* left, char* right) {
    while (left < right)
    {
        char* tmp = *left;
        *left = *right;
        *right = tmp;
        left++;
        right--;
    }
}
int main() 
{
    //初始化
    char arr[100] = { 0 };
    gets(arr);
    int len = strlen(arr);
    
    char* cur = arr;
    char* start = arr;
    Inversion(arr, arr + len - 1);
    //循环判断到结束
    while (*cur != '\0')
    {
        //每次逆置一个单词
        while (*cur != ' ' && *cur != '\0')
        {
                cur++;
        }
        Inversion(start, cur - 1);
        start = cur + 1;
        if (*cur == ' ')
            cur++;
    }
    printf("%s", arr);
    return 0;
}

题二:最小公倍数

示例1

输入

复制代码
6 4

输出

复制代码
12

思路一:

如下图: 明确思路(由于题目有时间复杂度,要求在牛客中此解法才通过,正常暴力解发时间复杂度超过题目限制)。

cpp 复制代码
#include <stdio.h>

int main() 
{
    int a, b;
    while (scanf("%d %d", &a, &b) != EOF)
    {
        int i = 1;
        while (i)
        {
            if ((a * i % b) == 0)
            {
                printf("%d", a * i);
                break;
            }
            i++;
        }
    }
    return 0;
}

本人实力有限可能对一些地方解释的不够清晰,可以自己尝试读代码,望海涵!

相关推荐
还有多久拿退休金7 小时前
让飞书知识库跟着 commit 自己长:一套自动化知识库的真实实现
前端·算法·架构
wuqingshun3141597 小时前
重写equals而不重写hashCode,会出什么问题?
java·开发语言
飞猪~8 小时前
LangChain python 版本 第一集
开发语言·python·langchain
星幻元宇VR8 小时前
公共安全实训展厅设备【人防知识学习系统】
科技·学习·安全
KaMeidebaby9 小时前
卡梅德生物技术快报|小 RNA 适配体合成 + 多方法亲和力表征全流程标准化操作手册
前端·网络·数据库·人工智能·算法
是Dream呀9 小时前
基于深度学习的人类行为识别算法研究
人工智能·深度学习·算法
人工智能培训9 小时前
破解数据发展瓶颈 激活数字经济新动能
大数据·数据库·人工智能·深度学习·神经网络·机器学习·生成对抗网络
绝世番茄9 小时前
鸿蒙 HarmonyOS ArkTS 音乐播放器界面布局深度学习指南
深度学习·华为·list·harmonyos·鸿蒙
李燚9 小时前
Go 项目怎么组织:DDD 4 层 vs MVC vs 脚本式
开发语言·golang·mvc·ddd·agent框架·eino
happyprince10 小时前
03_NVIDIA_ModelOpt-量化算法深入
人工智能·深度学习·算法