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;
}

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

相关推荐
Yhame.4 分钟前
【使用层次序列构建二叉树(数据结构C)】
c语言·开发语言·数据结构
言之。10 分钟前
【Go语言】RPC 使用指南(初学者版)
开发语言·rpc·golang
丰锋ff18 分钟前
考研英一学习笔记
笔记·学习·考研
雾月5528 分钟前
LeetCode 1292 元素和小于等于阈值的正方形的最大边长
java·数据结构·算法·leetcode·职场和发展
hnlucky34 分钟前
redis 数据类型新手练习系列——Hash类型
数据库·redis·学习·哈希算法
小宋加油啊38 分钟前
深度学习小记(包括pytorch 还有一些神经网络架构)
pytorch·深度学习·神经网络
沛沛老爹41 分钟前
从线性到非线性:简单聊聊神经网络的常见三大激活函数
人工智能·深度学习·神经网络·激活函数·relu·sigmoid·tanh
Invinciblenuonuo42 分钟前
FreeRTOS学习笔记【10】-----任务上下文切换
笔记·学习
好奇龙猫44 分钟前
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(11): てあります。
学习
投笔丶从戎1 小时前
Kotlin Multiplatform--01:项目结构基础
android·开发语言·kotlin