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 100

int 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;
	}
	else
		return 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 100

void 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 100

void 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;
		else
			break;
	}
	//通过i判断上述判断进行位置
	if(i >= len/2)
		printf("该字符串是回文字符串\n");
	else
		printf("该字符串不是回文字符串\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");
	else
		printf("大端存储\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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python统计实战:时间序列分析之绘制观测值图和按年折叠图

为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能&#xff0c;从而更快地掌握解决问题所需的能力。 &#xff08;以下练习题来源于《统计学—基于Python》。请在Q群455547227下载原始数据。&#xff09; 练习题 下表是某地区2…

复杂度(上卷)

前言 在正式进入今天的主题之前&#xff0c;我们不妨先来回顾一下初步学习数据结构后必须知道的概念。&#x1f3b6; 数据结构 数据结构是计算机存储、组织数据的方式&#xff0c;指相互间存在一种或多种特定关系的数据元素的集合。 &#xff08;没有一种单一的数据结构能够…

如何保证RocketMQ消息不丢失

rocket mq在生产阶段、Brocker存储阶段、消费阶段都会出现消息丢失。 1、生产者防止丢失消息。 a.同步阻塞的方式发送消息&#xff0c;加上失败重试机制&#xff0c;可能broker存储失败&#xff0c;可以通过查询确认 b.异步发送需要重写回调方法&#xff0c;检查发送结果 c…

人脸表情识别Facial Expression Recognition基于Python3和Keras2(TensorFlow后端)

人脸表情识别项目是一个结合了计算机视觉和深度学习技术的高级应用&#xff0c;主要用于分析和理解人类面部表情所传达的情感状态。这样的系统可以用于多种场景&#xff0c;比如情绪分析、用户交互、市场调研、医疗诊断以及人机接口等领域。 一个典型的人脸表情识别项目可以分…

kafka与zookeeper的SSL认证教程

作者 乐维社区&#xff08;forum.lwops.cn&#xff09;许远 在构建现代的分布式系统时&#xff0c;确保数据传输的安全性至关重要。Apache Kafka 和 Zookeeper 作为流行的分布式消息队列和协调服务&#xff0c;提供了SSL&#xff08;Secure Sockets Layer&#xff09;认证机制&…

红酒与威士忌:跨界碰撞的味觉火花

在品酒的世界里&#xff0c;红酒与威士忌&#xff0c;两者如同两位优雅的舞者&#xff0c;各自在舞台上闪耀着不同的光芒。然而&#xff0c;当它们相遇&#xff0c;那跨界碰撞的味觉火花&#xff0c;却仿佛一场不可预测的华丽盛宴&#xff0c;让人为之倾倒。 一、红酒的浪漫与威…

测试狗:“微观结构表征+理论计算”助力《Science》论文发表

特大喜讯&#xff1a;祝贺四川大学王玉忠院士&#xff0c;赵海波教授&#xff0c;马健文硕士研究生&#xff08;第一作者&#xff09;在《Science》上发表新的研究成果&#xff0c;测试狗和计算狗分别提供了SEM、Micro-CT、FTIR和理论计算支持&#xff0c;供相关领域的科研工作…

【经典面试题】环形链表

1.环形链表oj 2. oj解法 利用快慢指针&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode; bool hasCycle(struct ListNode *head) {ListNode* slow head, *fast…

centos9中mysql指令提示解决方案

CentOS 9 中没有 MySQL 的官方插件&#xff0c;因为 MySQL 不是 CentOS 的默认数据库&#xff0c;它是 MariaDB 的一部分。 如果想要一个命令行提示的 MySQL 客户端&#xff0c;可以使用第三方工具 &#xff0c;如mycli 首先&#xff0c;确保已经安装了 MySQL&#xff0c;且操…

【C语言】C语言-身份证管理系统(源码+注释)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

Java链表LinkedList经典题目

一.LinkedList的方法 首先先看一下链表的方法&#xff1a; 方法解释boolean add(E e)尾插void add(int index, E element)将 e 插入到 index 位置boolean addAll(Collection c)尾插 c 中的元素E remove(int index)删除 index 位置元素boolean remove(Object o)删除遇到的第一…

【7.10更新】Win11 23H2 正式版:22631.3880镜像下载!

微软向Win11 23H2用户推送了七月最新更新补丁KB5040442&#xff0c;系统更新后&#xff0c;版本号将升至22631.3880。本次更新包括了一些安全质量更新&#xff0c;并修复了6月可选更新导致的任务栏无法加载、交互问题&#xff0c;建议大家更新。该版本系统离线制作而成&#xf…

Spring MVC入门2

Postman的使用 接上期我们抛出了一个问题&#xff0c;Postman的使用 可以点击链接下载 https://www.postman.com/downloads/ 安装之后会提示版本升级&#xff0c;直接点击dissmiss即可。 要想发送数据&#xff0c;具体歩奏如下简图&#xff1a; 还有一个更具体的图&#xff…

回归树模型

目录 一、回归树模型vs决策树模型&#xff1a;二、回归树模型的叶结点&#xff1a;三、如何决定每个非叶结点上的特征类型&#xff1a; 本文只介绍回归树模型与决策树模型的区别。如需了解完整的理论&#xff0c;请看链接&#xff1a;决策树模型笔记 一、回归树模型vs决策树模…

jpg图片怎么转成png格式?学会这四种方法,轻松完成图片转换!

jpg图片怎么转成png格式&#xff1f;在数字图像的广袤天地中&#xff0c;JPG与PNG两大格式如同两位各具魅力的艺术家&#xff0c;各自以其独特的风格赢得了人们的喜爱&#xff0c;JPG擅长运用有损压缩的技法&#xff0c;以牺牲部分图像细节为代价&#xff0c;打造出更小巧、更易…

卤味江湖中,周黑鸭究竟该抓住什么赛点?

近年来&#xff0c;卤味江湖的决斗从未停止。 随着休闲卤味、佐餐卤味等细分赛道逐渐形成&#xff0c;“卤味三巨头”&#xff08;周黑鸭、绝味食品、煌上煌&#xff09;的牌桌上有了更多新对手&#xff0c;赛道变挤了&#xff0c;“周黑鸭们”也到了转型关键期。 这个夏天&a…

tableau范围-线图与倾斜图绘制 - 14

范围-线图与倾斜图 1.范围-线图1.1 含义1.2 范围-线图1.2.1 折线图绘制1.2.2 设置计算字段1.2.3 添加详细信息1.2.4 添加参考线1.2.5 结果 2. 倾斜图2.1 含义2.2 倾斜图绘制2.2.1 数据导入2.2.2 创建计算字段2.2.3 排名编辑表计算2.2.4 显示标签2.2.5 标签格式设置2.2.6 修改排…

4.感知机

感知机 ​ 给定输入 x x x&#xff0c;权重 w w w&#xff0c;和偏移 b b b,感知机输出&#xff1a; KaTeX parse error: Unknown column alignment: o at position 16: \begin{array} o̲ \sigma(<w,x>… 或者是二分类&#xff1a;-1或1 Expected node of symbol gro…

【异常】JDK21报错NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member fie

【异常】JDK21报错NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member fie java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field com.sun.tools.javac.tree.JCTree qualid …

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【HMAC(C/C++)】

HMAC(C/C) HMAC是密钥相关的哈希运算消息认证码&#xff08;Hash-based Message Authentication Code&#xff09;&#xff0c;是一种基于Hash函数和密钥进行消息认证的方法。 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 生…