初识C语言——第二十八天

news2024/10/5 0:48:33

代码练习1:

用函数的方式实现9*9乘法表

void print_table(int n)
{
    int i = 0;
    int j = 0;
    for (i = 1; i<= n; i++)
    {
        for (j = 1; j<= i; j++)
        {
            printf("%d*%d=%-3d   ", i, j, i * j);
        }
        printf("\n");
    }

}

int main()
{
    int n = 0;
    scanf("%d", &n);
    print_table(n);


    return 0;
}    

代码练习2

//我的思路1 用循环实现
int my_strlen(char* pi)
{
    int count = 0;
    while (*pi != '\0')
    {
        count++;
        pi++;
    }
    return count;
}

void reverse_string(char* str)
{
    int left = 0;
    int right = my_strlen(str)-1;
    while (left < right)
    {
        char pa = str[left];
        str[left] = str[right];
        str[right] = pa;
        left++;
        right--;
    }

}


int main()
{
    char arr[] = "abcdef" ;
    reverse_string(arr);
    printf("%s\n", arr);

    return 0;
}
//我的思路2   用递归去实现 定义三个参数
void reverse_string(char* str,int x,int y)
{
    
    if (x<y)
    {    
        
        char pa='0';
        pa = str[x];
        str[x] = str[y];
        str[y] = pa;
        reverse_string(str,x+1,y-1);
    }
}

int main()
{
    char arr[] = "abcdef" ;
    int left = 0;
    int right = my_strlen(arr) - 1;
    reverse_string(arr,left,right);
    printf("%s\n", arr);

    return 0;
}

大佬思路

//大佬思路  用递归实现
int my_strlen(char* pi)
{
    int count = 0;
    while (*pi != '\0')
    {
        count++;
        pi++;
    }
    return count;
}

void reverse_string(char* str)
{
    char tmp = *str;//1
    int len = my_strlen(str);//注释:这里必须多定义一个变量len,
    //而不能直接使用my_strlen(str)放入函数中,因为str表示指针,出现str+1,就表明地址往前+1
    *str = *(str + len - 1);//2
    *(str + len -1) = '\0';//3
    if (my_strlen(str + 1) >= 2)
    {
        reverse_string(str + 1);//4
    }
    *(str + len - 1) = tmp;//5

}

int main()
{
    char arr[] = "abcdef";
    reverse_string(arr);
    printf("%s\n", arr);

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1689542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024-5-24 石群电路-15

2024-5-24&#xff0c;星期五&#xff0c;22:15&#xff0c;天气&#xff1a;晴&#xff0c;心情&#xff1a;晴。今天最后一天上班&#xff0c;终于要放返校假啦&#xff0c;开心&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;不过放假也不能耽误…

day16|二叉树的属性

相关题目 ● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数 二叉树的深度与高度 如图&#xff0c; 二叉树的深度表示&#xff1a;任意一个叶子节点到根节点的距离&#xff0c;是从上往下计数的&#xff0c;因此使用前序遍历…

忍の摸头之术游戏娱乐源码

本资源提供给大家学习及参考研究借鉴美工之用&#xff0c;请勿用于商业和非法用途&#xff0c;无任何技术支持&#xff01; 忍の摸头之术游戏娱乐源码&#xff0c;抖音上面非常火的摸头杀画面,看得我眼花缭乱,源码拿去玩吧&#xff1b; 目录说明 忍の摸头之术&#xff1a;域…

[牛客网]——C语言刷题day5

答案&#xff1a;D 解析&#xff1a;因为两个指针都指向的字符串常量&#xff0c;不能被重新赋值&#xff0c;*p*q是错误的 在C语言中&#xff0c;赋值语句的返回值都是所赋的值&#xff0c;所以才会有连续赋值的语句&#xff0c;例如ab10&#xff0c;因此&#xff0c;这里的i…

TypeScript-初识

TypeScript 是具有类型语法的JavaScript&#xff0c;是一门强类型的编程语言 变量不能做随意类型赋值 好处&#xff1a; 1️⃣ 静态类型检查&#xff0c;提前发现代码错误 function arrToStr(arr: Array<string>){return arr.join() } arrToStr(123) // 类型“stri…

汇聚荣科技有限公司优点有哪些?

在当今快速发展的科技时代&#xff0c;企业之间的竞争愈发激烈。作为一家专注于科技创新与研发的公司&#xff0c;汇聚荣科技有限公司凭借其卓越的技术实力和创新能力&#xff0c;在业界树立了良好的口碑。那么&#xff0c;汇聚荣科技有限公司究竟有哪些优点呢?接下来&#xf…

基于CentOS7的openGauss5.x极简版安装过程分享

背景&#xff1a;国产信创适配大环境下&#xff0c;安装并体验一下&#xff0c;了解一些数据库适配情况 约束&#xff1a;CentOS Linux release 7.8.2003 (Core) 范围&#xff1a;仅记录上述平台下的简单安装体验过程 目的&#xff1a;节约大家初次体验的时间&#xff0c;为社会…

Python协程的作用

过分揣测别人的想法&#xff0c;就会失去自己的立场。大家好&#xff0c;当代软件开发领域中&#xff0c;异步编程已成为一种不可或缺的技术&#xff0c;用于处理大规模数据处理、高并发网络请求、实时通信等应用场景。而Python协程&#xff08;Coroutine&#xff09;作为一种高…

string类的各个功能函数的底层实现

我们在上一篇文章中详细地讲解了string类的各个常用功能成员函数的讲解&#xff0c;本文我们将对上文进行一个小收尾&#xff0c;然后开始实现string类的底层。 一、上一篇的收尾 1.find函数&#xff1a;顾名思义&#xff0c;它的功能是在字符串中找到目标字符并返回它的位置…

骨传导耳机哪个品牌好?避坑必读精析5大热门款式推荐!

作为一名有着多年工作经验的数码测评师&#xff0c;我发现市场上有许多骨传导耳机品牌都声称自己具有出色的音质和佩戴舒适度。但是&#xff0c;从用户的实际反馈来看&#xff0c;大部分产品都或多或少存在一些问题&#xff0c;如音质失真、佩戴不稳定、耳朵不适等&#xff0c;…

【Pytorch】16.使用ImageFolder加载自定义MNIST数据集训练手写数字识别网络(包含数据集下载)

数据集下载 MINST_PNG_Training在github的项目目录中的datasets中有MNIST的png格式数据集的压缩包 用于训练的神经网络模型 自定义数据集训练 在前文【Pytorch】13.搭建完整的CIFAR10模型我们已经知道了基本搭建神经网络的框架了&#xff0c;但是其中的数据集使用的torchvision…

vue实现加入购物车动效

实现 实现逻辑&#xff1a; 点击添加购物车按钮时&#xff0c;获取当前点击位置event的clientX 、clientY&#xff1b;动态创建移动的小球&#xff0c;动态计算小球需要移动到的位置&#xff08;通过ref 的getBoundingClientRect获取统计元素按钮位置&#xff09;&#xff1b…

JS 网页密码框验证信息

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>/* 当没有密码…

【错误解决】使用HuggingFaceInstructEmbeddings时的一个错误

起因&#xff1a;使用huggingface构建一个问答程序时出现的问题。 错误内容&#xff1a; 分析&#xff1a; 查看代码发现&#xff0c;HuggingFaceInstructEmbeddings和sentence-transformers模块版本不兼容导致。 可以明显看到方法参数不同。 解决&#xff1a; 安装sentenc…

MySQL主从复制(docker搭建)

文章目录 1.MySQL主从复制配置1.主服务器配置1.拉取mysql5.7的镜像2.启动一个主mysql&#xff0c;进行端口映射和目录挂载3.进入/mysql5.7/mysql-master/conf中创建my.cnf并写入主mysql配置1.进入目录2.执行命令写入配置 4.重启mysql容器&#xff0c;使配置生效5.进入主mysql&a…

c#自动生成缺陷图像-添加新功能(可从xml直接提取目标数据,然后进行数据离线增强)--20240524

在进行深度学习时,数据集十分重要,尤其是负样本数据。 故设计该软件进行深度学习数据预处理,最大可能性获取较多的模拟工业现场负样本数据集。 该软件基于VS2015、.NETFrameWork4.7.2、OpenCvSharp1.0.0.0、netstandard2.0.0.0、SunnyUI3.2.9.0、SunnyUI.Common3.2.9.0及Ope…

Android studio的Gradle出问题

Gradle sync failed: Plugin [id: com.android.application, version: 7.1.1, apply: false] was not found in any of the following sources: 在src里面的build.gradle中 plugins { id ‘com.android.application’ } 的上面加上 buildscript {repositories {jcenter()}depen…

数字驱动,教育先行——低代码揭秘教育机构管理数字化转型

数字化时代为教育带来了许多变革和挑战&#xff0c;同时也为教育创新提供了无限可能。数字化转型可以帮助教育机构应对这些变革和挑战&#xff0c;提高教育效率和质量&#xff0c;满足学生个性化需求&#xff0c;优化教育管理和服务&#xff0c;并提高教育机构的竞争力。 并且…

【译】MySQL复制入门: 探索不同类型的MySQL复制解决方案

原文地址&#xff1a;An Introduction to MySQL Replication: Exploring Different Types of MySQL Replication Solutions 在这篇博文中&#xff0c;我将深入介绍 MySQL 复制&#xff0c;回答它是什么、如何工作、它的优势和挑战&#xff0c;并回顾作为 MySQL 环境&#xff0…

131. 面试中关于架构设计都需要了解哪些内容?

文章目录 一、社区系统架构组件概览1. 系统拆分2. CDN、Nginx静态缓存、JVM本地缓存3. Redis缓存4. MQ5. 分库分表6. 读写分离7. ElasticSearch 二、商城系统-亿级商品如何存储三、对账系统-分布式事务一致性四、统计系统-海量计数六、系统设计 - 微软1、需求收集2、顶层设计3、…