【趣学C语言和数据结构100例】

news2024/10/23 10:31:36

【趣学C语言和数据结构100例】

问题描述

  1. 编写一个程序,将两个字符串 s1 和 s2 比较

  2. 编写一个程序,将字符数组 s2 中的全部字符复制到字符数组 s1 中,不用 strcpy 函数。复制时,‘0’ 也要赋值过去。“0”之后的字符不复制。

  3. 编写一个程序,求字符数组 s 的长度,不用 strlen 函数。数组 s 从键盘输入,长度不超过 50。

  4. 输入一行字符,统计其中有多少个单词,单词之间用空格分开。

  5. 利用递归方法求 5!

代码分析

21.字符串比较
分析:gets输入2个字符串s1和s2,如果s1>s2,输出一个整数:若 s1=s2,输出 0:若sl<s2,输出一个负数:输出的正数或负数的绝对值应是相比较的两个字符串相对应字符的 ASCI 码的差值。所以条件为!(ret=s1[index]-s2[index]) && s1[index]!=‘\0’ && s2[index]!=‘\0’。

22.字符串赋值,不用 strcpy 函数
分析:scanf输入2个字符串s1和s2,条件为s2[index] != ‘\0’,注意’0’ 也要赋值过去。跳出循环后, s1[index] = s2[index];。

23.字符串长度,不用 strlen 函数
分析:scanf输入1个字符串s1,条件为s[index++]!=‘\0’,用来计数。

24. 统计单词个数
分析:gets输入1个字符串s1,使用for循环,每次遇到’ '(空格),则计数。

25.初识递归
分析:递归在与定义func,并在func中使用func,和递归的结束条件。本题为递归求 5!,1.定义func(n),2.返回值为:return nfunc(n-1),递归的结束条件if(n1 || n0){return 1;} 否则一直return nfunc(n-1)

代码实现

#include <stdio.h>
//25的递归
int fact(int x){
	int sum=0;
	if(x==1 || x==0){
		sum=1;
	}
	else{
		sum=x*fact(x-1);	
	}
	return sum;
}

int main()
{
//	21.编写一个程序,将连个字符串 s1 和 s2 比较,
//	如果s1>s2,输出一个整数:若 s1=s2,输出 0:若sl<s2,输出一个负数:
//	若s1>s2,输出一两个一个正数。不要用 strcmp 函数:字符串用 gets 函数读入。
//	输出的正数或负数的绝对值应是相比较的两个字符串相对应字符的 ASCI 码的差值。
//	例如,“A"和“C”相比,由于"A”<“℃”,应输出负数,同时由于'A'与'C的 ASCI 码差值为 2,
//	因此应输出"-2"。同理:“And”和"Aid"相比较,根据第2个字符比较结果,“n"比"i"大 5,因此应输出"5”
	char s1[100] = {0};
    char s2[50] = {0};
    int index = 0,ret=0;
    printf("输入字符串 s1: ");
    gets(s1);
    printf("输入字符串 s2: ");
    gets(s2);
    while(!(ret=s1[index]-s2[index])  &&  s1[index]!='\0'  &&  s2[index]!='\0'){
    	index++;
	}
	printf("%d\n",ret);

//	22.编写一个程序,将字符数组s2 中的全部字符复制到字符数组 s1 中,不用 strcpy 函数。复制时, '0’也要赋值过去。“0’之后的字符不复制。
	char s1[100] = {0};
    char s2[50] = {0};
    int index = 0;
    printf("输入字符串 s1: ");
    scanf("%s", s1);
    printf("输入字符串 s2: ");
    scanf("%s", s2);
    while (s2[index] != '\0') {
        s1[index] = s2[index];
        index++; 
    }
    s1[index] = s2[index];
    printf("字符数组s2 中的全部字符复制到字符数组 s1的字符串:%s\n", s1);

//	23.编写一个程序,求字符数组s的长度,不用 stlen 函数。数组s山键盘输入,长度不超过 50.
	char s[100] = {0};
    int index = 0;
    printf("输入字符串 s: ");
    scanf("%s", s);
    while(s[index++]!='\0'){
	}
    printf("宁符数组s的长度:%d\n", index-1);

//	24.输入一行字符,统计其中有多少个单词,单词之间用空格分开。
	char s[100] = {0};
    int num = 0;
    printf("输入字符串 s: ");
    gets(s);
    for(int i=0;s[i]!='\0';i++){
    	if(s[i]==' '){
			num++;
		}
	}
    printf("宁符数组s的长度:%d\n", num);
   
//	25.利用递归方法求 5!
	int n,num;
	printf("输入递归方法的数:");
	scanf("%d",&n);
	num=fact(n);
	printf("递归法求%d!的值为:%d",n,num);
	
	return 0;
}



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

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

相关文章

告别ELK,APO提供基于ClickHouse开箱即用的高效日志方案——APO 0.6.0发布

ELK一直是日志领域的主流产品&#xff0c;但是ElasticSearch的成本很高&#xff0c;查询效果随着数据量的增加越来越慢。业界已经有很多公司&#xff0c;比如滴滴、B站、Uber、Cloudflare都已经使用ClickHose作为ElasticSearch的替代品&#xff0c;都取得了不错的效果&#xff…

【Golang】Go语言中如何创建Cron定时任务

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

MySQL【知识改变命运】11

联合查询 6. ⼦查询6.1 语法6.2 单⾏⼦查询6.3 多⾏⼦查询6.4 多列⼦查询6.5 在from⼦句中使⽤⼦查询 7. 合并查询7.1 创建新表并初始化数据7.2 Union7.3 Union all 8. 插⼊查询结果8.1 语法8.2 ⽰例 6. ⼦查询 ⼦查询是把⼀个SELECT语句的结果当做别⼀个SELECT语句的条件&…

10.22 MySQL

存储过程 存储函数 存储函数是有返回值的存储过程&#xff0c;存储函数的参数只能是in类型的。具体语法如下&#xff1a; characteristic 特性 练习&#xff1a; 从1到n的累加 ​​​​​​ create function fun1(n int) returns int deterministic begindeclare total i…

制氮机分子筛的作用

制氮机作为一种重要的工业设备&#xff0c;广泛应用于食品、饮料、化学、石油、电子和医疗保健等多个行业。其核心组件之一——分子筛。本文将详细探讨制氮机分子筛的作用及其重要性。 一、分子筛的基本概念 分子筛是一种具有均匀孔径的多孔材料&#xff0c;常用于气体分离和纯…

Elasticsearch 中的高效按位匹配

作者&#xff1a;来自 Elastic Alexander Marquardt 探索在 Elasticsearch 中编码和匹配二进制数据的六种方法&#xff0c;包括术语编码&#xff08;我喜欢的方法&#xff09;、布尔编码、稀疏位位置编码、具有精确匹配的整数编码、具有脚本按位匹配的整数编码以及使用 ESQL 进…

基于vue框架的的二手车交易系统的设计与实现thx7v(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,卖家,车辆类型,二手车,在线留言,订单信息 开题报告内容 基于Vue框架的二手车交易系统的设计与实现开题报告 一、课题背景及意义 随着汽车消费市场的日益成熟与消费者换车频率的增加&#xff0c;二手车交易市场逐渐成为汽车市场的…

pycharm配置git版本控制

今天记录一下如何在pycharm工具中配置git版本控制&#xff0c;主要分以下步骤&#xff1a; 1、安装git 首先需要有git环境&#xff0c;去git官网下载git安装包&#xff0c;下一步下一步执行安装完成即可 2、在pycharm中配置git路径 下载git后&#xff0c;在pycharm的 setti…

「AIGC」n8n AI Agent开源的工作流自动化工具

n8n AI Agent 是一个利用大型语言模型(LLMs)来设计和构建智能体(agents)的工具,这些智能体能够执行一系列复杂的任务,如理解指令、模仿类人推理,以及从用户命令中理解隐含意图。n8n AI Agent 的核心在于构建一系列提示(prompts),使 LLM 能够模拟自主行为。 传送门→ …

GAMES104:17 游戏引擎的玩法系统:高级AI-学习笔记

文章目录 课前QA一&#xff0c;层次任务网络&#xff08;Hierarchical Tasks Network&#xff0c;HTN&#xff09;1.1 HTN Framework1.2 HTN Task Types1.2.1 Primitive Task基本任务1.2.2 Compound Task符合任务 1.3 Planning1.4 Replan1.5 总结 二&#xff0c;目标导向行为规…

在ECS实例上搭建WordPress博客平台

WordPress是使用PHP语言开发的博客平台&#xff0c;在支持PHP和MySQL数据库的服务器上&#xff0c;您可以用WordPress搭建自己的网站&#xff0c;也可以用作内容管理系统&#xff08;CMS&#xff09;。本教程介绍如何在不同操作系统的ECS实例上&#xff0c;手动搭建WordPress网…

SonarQube快速实践

SonarQube快速实践 1. 简介 SonarQube 是一个本地部署的代码分析工具&#xff0c;旨在检测30多种编程语言、框架和基础设施即代码&#xff08;IaC&#xff09;平台中的代码问题。通过直接集成到您的持续集成&#xff08;CI&#xff09;流水线中或在我们支持的DevOps平台之一上…

转行AI产品经理,第二步怎么走

之前写了一篇文章《转行AI产品经理&#xff0c;第一步怎么走》&#xff0c;好多小伙伴私信我&#xff0c;和我聊了一些细节&#xff0c;我感觉有必要再聊一聊&#xff0c;转行AI产品经理&#xff0c;第二步怎么走。 在上一篇文章里我们聊了一个小糖人游戏&#xff0c;从而得出…

用AI怎样来迭代优秀的学习法,AI+费曼学习法的妙用!

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 AI工具集1&#xff1a;大厂AI工具【共23款…

Quartus Ⅱ仿真 2.三人表决电路

奥里给&#xff0c;一起加油啊&#xff0c;我会陪着你们的&#xff01; 仿真波形&#xff1a; 输出结果&#xff1a; 介绍&#xff1a; 三人表决电路是一种数字逻辑电路&#xff0c;用于实现三个输入信号的多数表决。在这种电路中&#xff0c;如果至少有两个输入为高电平&a…

MySQL-事物隔离级别

1. MySQL事物的四种隔离级别 1.1 读未提交&#xff08;READ UNCOMMITTED&#xff09; READ UNCOMMITED提供了事物之间最小限度的隔离&#xff0c;除了幻读和不可重复读取的操作外&#xff0c;处于这个隔离级别的事务可以读到其它事务还未提交的数据。 1.2 读已提交&#xf…

利用 Direct3D 绘制几何体—7.编译着色器

在 Direct3D 中&#xff0c;着色器程序必须先被编译为一种可移植的字节码。接下来&#xff0c;图形驱动程序将获取这些字节码&#xff0c;并将其重新编译为针对当前系统 GPU 所优化的本地指令 [ATI1]。我们可以在运行期间用下列函数对着色器进行编译。 HRESULT D3DCompileFrom…

创建型模式-----(单例模式)

目录 基本概念 饿汉式&#xff1a; 懒汉式&#xff1a; 上锁双判空版本 std::call_once版本&#xff1a; C11标准后局部静态变量版本&#xff1a; 项目中单例模板的应用 基本概念 单例模式&#xff1a;在程序运行期间只有一份&#xff0c;与程序生存周期一样&#xff0c;…

对比学习论文随笔 1:正负样本对(Contrastive Learning 基础论文篇)

为了阅读的流畅&#xff0c;当前针对相同的代理任务按时间顺序进行梳理&#xff0c;涉及仅使用正负样本思想且优化目标一致的「基础」论文&#xff08;2018-2020&#xff09;&#xff0c;编码器均采用 ResNet。 文章目录 前言对比学习和代理任务&#xff08;Pretext task&#…

浪潮云启操作系统(InLinux)bcache缓存实践:理解OpenStack环境下虚拟机卷、Ceph OSD、bcache设备之间的映射关系

前言 在OpenStack平台上&#xff0c;采用bcache加速ceph分布式存储的方案被广泛用于企业和云环境。一方面&#xff0c;Ceph作为分布式存储系统&#xff0c;与虚拟机存储卷紧密结合&#xff0c;可以提供高可用和高性能的存储服务。另一方面&#xff0c;bcache作为混合存储方案&…