C基础day9

一、思维导图

二、课后练习

1> 使用递归实现 求 n 的 k 次方

#include<myhead.h>int Pow(int n,int k)
{if(k == 0 )  //递归出口{return 1;}else{return n*Pow(n,k-1);  	//递归主体}
}int main(int argc, const char *argv[])
{int n=0,k=0;printf("请输入n和k:");scanf("%d%d",&n,&k);int res = Pow(n,k);printf("%d的%d次方:%d\n",n,k,res);return 0;
}

2> 使用递归实现 strlen 的功能

#include<myhead.h>
#define Max_Size 100int Strlen_Dig(char str[Max_Size])
{char *ptr = str;if(*ptr == '\0') 	//递归出口{return 0;}else{return Strlen_Dig(ptr+1)+1; //指针偏移}
}int main(int argc, const char *argv[])
{while(1){printf("请输入字符串:");char str[Max_Size]; 	//定义字符数组gets(str); 				//输入字符数组int res = Strlen_Dig(str); //调用函数求数组长度printf("字符串的长度为:%d\n",res);}return 0;
}

3> 使用递归实现汉诺塔问题

#include<myhead.h>int Tower_Han(int n)
{//递归出口if(n == 1){return 1;}elsereturn Tower_Han(n-1)*2+1;
}int main(int argc, const char *argv[])
{int n = 0;printf("请输入汉诺塔的层数:");scanf("%d",&n);int res = Tower_Han(n);printf("%d层汉诺塔需要移动%d次\n",n,res);return 0;
}

4> 定义一个函数将一个字符串从大到小排序

#include<myhead.h>
#define Max_Size 100void Sort_Str(char str[Max_Size])
{char *ptr =str;int len = strlen(str); //求字符串长度//冒泡排序for(int i=1;i<len;i++){for(int j=0;j<len-i;j++){if(*(ptr+j) < *(ptr+j+1)) //降序排序{char temp = *(ptr+j);*(ptr+j) = *(ptr+j+1);*(ptr+j+1) = temp;}}}
}int main(int argc, const char *argv[])
{char str[Max_Size];//输入字符数组printf("请输入字符串");gets(str);//调用字符数组排序函数Sort_Str(str);//输出排序后的字符串puts(str);return 0;
}

5> 实现一个函数,用于检查一个字符串是否是回文字符串(正序和反序都相同)

#include<myhead.h>#define Max_Size 100void HuiWen(char str[Max_Size])
{//定义指针变量指向字符数组首位char *ptr = str;//求字符串长度int len = strlen(str);//判断上是否为回文字符串int i=0;for(i=0;i<len/2;i++){//判断字符串是否对称相等if(*(ptr+i) == *(ptr+len-1-i))continue;elsebreak;}//通过i判断上述判断进行位置if(i >= len/2)printf("该字符串是回文字符串\n");elseprintf("该字符串不是回文字符串\n");
}int main(int argc, const char *argv[])
{//定义一位字符数组存储字符串char str[Max_Size];//输入字符数组printf("请输入字符串:");gets(str);//调用函数判断HuiWen(str);return 0;
}

6> 使用指针完成判断自己的主机存储多字节整数时,是大端存储还是小端存储

#include<myhead.h>
int main(int argc, const char *argv[])
{int n =1;char *ptr = (char*)&n;if(*ptr == 1)printf("小端存储\n");elseprintf("大端存储\n");return 0;
}

7> 有一段文本,写一段程序统计其中的单词数。例如:Do one thing at a time, and do well.
(注意:单词间的间隔不一定是一个空格。)

#include<myhead.h>#define Max_size 100//判断字符是否为空白字符
int isWhitespace(char c) {return (c == ' ' || c == '\t' || c == '\n' || c == '\r');
}// 判断字符是否为标点符号
int isPunctuation(char c) {return (c == '.' || c == ',' || c == ';' || c == ':' || c == '!' || c == '?');
}// 计算文本中的单词数
int Num_Word(const char* str) {int inWord = 0;int wordCount = 0;while (*str) {// 跳过空白字符和标点符号while (isWhitespace(*str) || isPunctuation(*str)) {str++;}if (*str) { // 如果不是字符串末尾wordCount++; // 遇到单词的开始inWord = 1;// 继续往后找,直到遇到空白字符或标点符号while (*str && !isWhitespace(*str) && !isPunctuation(*str)) {str++;}}}return wordCount;
}int main(int argc, const char *argv[])
{//定义字符数组并输入char str[Max_size];printf("请输入字符串:");gets(str);//调用求单词数函数int res = Num_Word(str);printf("上述文本单词数量为:%d\n",res);return 0;
}

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

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

相关文章

韩国coupang上线的卖家官网是什么?韩国电商有哪些平台?

根据Statista的调查报告&#xff0c;预计2024年电子商务市场收入将达到4.117亿美元。而韩国的电子商务市场是全球最具活力和创新性的市场之一&#xff0c;有数据显示2023年韩国电商市场规模已突破1700亿美元&#xff0c;全球排名第四。 韩国coupang上线的卖家官网是什么&#x…

Linux虚拟机扩展磁盘空间

文章目录 在VM上进行扩展新的磁盘空间进入虚拟机将扩展的磁盘空间分配给对应的分区 VM 下的Linux虚拟机提示磁盘空间不足&#xff0c;需要对其进行磁盘扩容&#xff0c;主要有以下两步&#xff1a; 在VM上进行扩展新的磁盘空间 先关闭虚拟机在VM的虚拟机设置处进行硬盘扩展 …

Redislnsight-v2远程连接redis

redis安装内容添加&#xff1a; Linux 下使用Docker安装redis-CSDN博客 点击添加 添加ip地址&#xff0c;密码&#xff0c;端口号 创建完成 点击查看内容&#xff1a;

Redis的单线程讲解与指令学习

目录 一.Redis的命令 二.数据类型 三.Redis的key的过期策略如何实现&#xff1f; 四.Redis为什么是单线程的 五.String有关的命令 Redis的学习专栏&#xff1a;http://t.csdnimg.cn/a8cvV 一.Redis的命令 两个基本命令 在Redis当中&#xff0c;有两个基本命令&#xff1…

记录些MySQL题集(3)

MySQL 分区技术深入解析 分区的基本概念 MySQL分区 是一种数据库优化的技术&#xff0c;它允许将一个大的表、索引或其子集分割成多个较小的、更易于管理的片段&#xff0c;这些片段称为“分区”。每个分区都可以独立于其他分区进行存储、备份、索引和其他操作。这种技术主要…

Docker初识及使用研究

公司使用docker&#xff0c;小组成员人人都是默默使用&#xff0c;也没讲解培训&#xff0c;真是搞笑。 记录自己独自研究及使用&#xff1a; 1)自己安装->失败-系统弄崩->安装成功 目录 1. Docker安装-初次安装失败2. Docker安装-初次安装成功 1. Docker安装-初次安装失…

微信小程序密码 显示隐藏 真机兼容问题

之前使用type来控制&#xff0c;发现不行&#xff0c;修改为password属性即可 <van-fieldright-icon"{{passwordType password? closed-eye:eye-o}}"model:value"{{ password }}"password"{{passwordType password ? true: false}}"borde…

PostgreSQL 中如何解决因长事务阻塞导致的其他事务等待问题?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何解决因长事务阻塞导致的其他事务等待问题&#xff1f;一、了解长事务阻塞的原因&…

结合实体类型信息(2)——基于本体的知识图谱补全深度学习方法

1 引言 1.1 问题 目前KGC和KGE提案的两个主要缺点是:(1)它们没有利用本体信息;(二)对训练时未见的事实和新鲜事物不能预测的。 1.2 解决方案 一种新的知识图嵌入初始化方法。 1.3 结合的信息 知识库中的实体向量表示&#xff0b;编码后的本体信息——>增强 KGC 2基…

思迈特软件2023H2商业智能和分析软件市场份额增长速度跃居第一

近日&#xff0c;全球知名的IT市场研究与咨询公司IDC发布了《中国商业智能和分析软件市场跟踪报告&#xff0c;2023H2》。根据报告显示&#xff0c;思迈特软件在中国商业智能和分析软件市场份额中位列前五&#xff0c;在中国BI厂商中排名TOP2。 尤其值得一提的是&#xff0c;思…

【数据结构】Splay详解

Splay 引入 Splay旋转操作splay操作插入操作查询x排名查询排名为x删除操作查询前驱/后继模板Splay时间复杂度分析 进阶操作截取区间区间加&#xff0c;区间赋值&#xff0c;区间查询&#xff0c;区间最值区间翻转原序列整体插入指定位置插入整体插入末尾区间最大子段和 一些好题…

C++客户端Qt开发——常用控件(按钮类控件)

2.按钮类控件 ①QPushButton 按钮 继承自QAbstractButton&#xff0c;这个类是⼀个抽象类&#xff0c;是其他按钮的父类 属性 说明 text 按钮中的文本 icon 按钮中的图标 iconSize 按钮中图标的尺寸 shortCut 按钮对应的快捷键 autoRepeat 按钮是否会触发&#xff…

AMD software 将两个显示器合并为一个超宽显示器

最近玩游戏的时候&#xff0c;发现了一个骚操作。 可以将两个显示器&#xff08;更多个的自己去试&#xff0c;不知道&#xff09;组合为一个显示器&#xff0c;注意&#xff0c;这里说的不是将两个显示都连接电脑从而使用双屏显示器&#xff0c; 而是 将两个显示器组合为一个…

基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例

在水利、环境、生态、机械以及航天等领域中&#xff0c;数学模型已经成为一种常用的技术手段。同时&#xff0c;为了提高模型的性能&#xff0c;减小模型误用带来的风险&#xff1b;模型的优化技术也被广泛用于模型的使用过程。模型参数的快速优化技术不但涉及到优化本身而且涉…

微信小游戏 彩色试管 倒水游戏 逻辑 (二)

最近开始研究微信小游戏&#xff0c;有兴趣的 可以关注一下 公众号&#xff0c; 记录一些心路历程和源代码。 定义一个 Water class 1. **定义接口和枚举**&#xff1a; - WaterInfo 接口定义了水的颜色、高度等信息。 - PourAction 枚举定义了水的倒动状态&#xff0c;…

C双指针元素去重

需求 在尾部插⼊、删除元素是⽐较⾼效的&#xff0c;时间复杂度 是 O(1)&#xff0c;但是如果在中间或者开头插⼊、删除元素&#xff0c;就会涉及数据的搬移&#xff0c;时间复杂度为 O(N)&#xff0c;效率较低。 代码 #include <stdio.h>// 相邻元素去重 int remove…

01 电场强度通量 高斯定理

电场强度通量 高斯定理 5-4 电场强度通量 高斯定理一.电场线二.电场强度通量三.高斯定理四高斯定理应用举例典型电场的电场线分布图形正点电荷与负点电荷的电场线一对等量正点电荷的电场线一对等量异号点电荷的电场线一对不等量异号点电荷的电场线带电平行板电容器的电场线 5-4…

CompletableFuture介绍与实战

CompletableFuture 介绍与实战 一、前言 ​ 日常工作中&#xff0c;大多数情况下我们的接口的执行逻辑都是串行化的&#xff0c;串行化的逻辑也基本能满足我们绝大部分的场景。但是&#xff0c;在一些情况下我们的代码可能会存在一些比较耗时的操作&#xff0c;串行的逻辑就有…

金蝶云星空与金蝶云星空对接集成付款单查询打通[标准][付款单新增]-v1

金蝶云星空与金蝶云星空对接集成付款单查询打通[标准][付款单新增]-v1 对接源平台:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上&#xff0c;提供了标准的管理模式&#xff1b;通过标准的业务架构&#xff1a;多会计准则、多币别、多地点、多组织、多税制应用…

Gstreamer学习3.1------使用appsrc灌颜色信号数据

这个视频内容讲解的离散余弦变换&#xff0c;讲的很好&#xff0c; 离散余弦变换可视化讲解_哔哩哔哩_bilibili 其中讲到&#xff0c;把颜色变化转换为曲线的处理&#xff0c; 在前面的学习中&#xff0c;我们知道了可以向appsrc来灌数据来进行显示 Gstreamer学习3----灌数据…