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

【趣学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;
}



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

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

相关文章

SpringBoot使用RestTemplate实现发送HTTP请求

Java 实现发送 HTTP 请求&#xff0c;系列文章&#xff1a; 《Java使用原生HttpURLConnection实现发送HTTP请求》 《Java使用HttpClient5实现发送HTTP请求》 《SpringBoot使用RestTemplate实现发送HTTP请求》 1、RestTemplate 的介绍 RestTemplate 是 Spring 框架提供的一个用…

【java】抽象类和接口(了解,进阶,到全部掌握)

各位看官早安午安晚安呀 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连&#xff0c;小编尽全力做到更好 欢迎您分享给更多人哦 大家好我们今天来学习Java面向对象的的抽象类和接口&#xff0c;我们大家庭已经来啦~ 一&#xff1a;抽象类 1.1:抽象类概念 在面向对象的概念中…

12寸FAB厂试产到量产实现无纸化要素之软硬件

在12寸先进封装半导体车间从试产到量产的过程中&#xff0c;实现生产过程无纸化&#xff0c;需要综合考虑软硬件的配置。以下是一些关键的规划建议&#xff1a; 1、生产文档管理系统&#xff08;PDM&#xff09;&#xff1a; 采用基于SOLIDWORKS PDM开发的无纸化方案&#xf…

uniapp 整合 OpenLayers - 加载Geojson数据(在线、离线)

Geojson数据是矢量数据&#xff0c;主要是点、线、面数据集合 Geojson数据获取&#xff1a;DataV.GeoAtlas地理小工具系列 实现代码如下&#xff1a; <template><!-- 监听变量 operation 的变化&#xff0c;operation 发生改变时&#xff0c;调用 openlayers 模块的…

Java面试场景题(1)---如何使用redis记录上亿用户连续登陆天数

感谢uu们的观看&#xff0c;话不多说开始~ 对于这个问题&#xff0c;我们需要先来了解一下~ 海量数据都可以用bitmap来存储&#xff0c;因为占得内存小&#xff0c;速度也很快 我大概计算了一下~ 完全够&#xff1a;String类型512M 1byte 8个bit位 8个状态 512M1024byt…

数据库性能测试报告总结模板

1计划概述 目的&#xff1a;找出系统潜在的性能缺陷 目标&#xff1a;从安全&#xff0c;可靠&#xff0c;稳定的角度出发&#xff0c;找出性能缺陷&#xff0c;并且找出系统最佳承受并发用户数&#xff0c;以及并发用户数下长时间运行的负载情况&#xff0c;如要并发100用户&a…

CTFHUB技能树之SQL——字符型注入

开启靶场&#xff0c;打开链接&#xff1a; 直接指明是SQL字符型注入&#xff0c;但还是来判断一下 &#xff08;1&#xff09;检查是否存在注入点 1 and 11# 返回正确 1 and 12# 返回错误 说明存在SQL字符型注入 &#xff08;2&#xff09;猜字段数 1 order by 2# 1 order…

颠覆编程!通义灵码、包阅AI、CodeGeeX三大AI助手解锁无限潜力!

随着科技的疾速前行&#xff0c;人工智能&#xff08;AI&#xff09;辅助编程工具已跃然成为软件开发领域及编程爱好者群体中不可或缺的得力助手。这些融入了尖端智能化算法的工具&#xff0c;不仅深刻改变了编程工作的面貌&#xff0c;通过自动化和优化手段显著提升了编程效率…

GJS-WCP

不懂的就问&#xff0c;但我也是二把手......哭死 web GJS-ezssti 很常规的ssti模板注入&#xff0c;只过滤了"/","flag"。 过滤了/,flag 可以利用bash的特性绕过&#xff0c;如字符串截取&#xff0c;环境变量等等。payload1: {{url_for.__globals__[…

柔性数组的使用

//柔性数组的使用 #include<stdio.h> #include<stdlib.h> #include<errno.h> struct s {int i;int a[]; }; int main() {struct s* ps (struct s*)malloc(sizeof(struct s) 20 * sizeof(int));if (ps NULL){perror("malloc");return 1;}//使用这…

react18中在列表项中如何使用useRef来获取每项的dom对象

在react中获取dom节点都知道用ref&#xff0c;但是在一个列表循环中&#xff0c;这样做是行不通的&#xff0c;需要做进一步的数据处理。 实现效果 需求&#xff1a;点击每张图片&#xff0c;当前图片出现在可视区域。 代码实现 .box{border: 1px solid #000;list-style: …

Math类、System类、Runtime类、Object类、Objects类、BigInteger类、BigDecimal类

课程目标 能够熟练使用Math类中的常见方法 能够熟练使用System类中的常见方法 能够理解Object类的常见方法作用 能够熟练使用Objects类的常见方法 能够熟练使用BigInteger类的常见方法 能够熟练使用BigDecimal类的常见方法 1 Math类 1.1 概述 tips&#xff1a;了解内容…

Java | Leetcode Java题解之第493题翻转对

题目&#xff1a; 题解&#xff1a; class Solution {public int reversePairs(int[] nums) {Set<Long> allNumbers new TreeSet<Long>();for (int x : nums) {allNumbers.add((long) x);allNumbers.add((long) x * 2);}// 利用哈希表进行离散化Map<Long, Int…

【JAVA】第三张_Eclipse下载、安装、汉化

简介 Eclipse是一种流行的集成开发环境&#xff08;IDE&#xff09;&#xff0c;可用于开发各种编程语言&#xff0c;包括Java、C、Python等。它最初由IBM公司开发&#xff0c;后来被Eclipse Foundation接手并成为一个开源项目。 Eclipse提供了一个功能强大的开发平台&#x…

AI 编译器学习笔记之四 -- cann接口使用

1、安装昇腾依赖 # CANN发布件地址 https://cmc.rnd.huawei.com/cmcversion/index/releaseView?deltaId10274626629404288&isSelectSoftware&url_datarun Ascend-cann-toolkit_8.0.T15_linux-aarch64.run Ascend-cann-nnal_8.0.T15_linux-aarch64.run Ascend-cann-ker…

当下大语言模型(LLM)应用的架构介绍

想要构建你的第一个大语言模型应用&#xff1f;这里有你需要了解的一切&#xff0c;以及你今天就能开始探索的问题领域。 LLM 应用架构 我们的目标是让你能够自由地使用大语言模型进行实验、打造自己的应用&#xff0c;并挖掘那些尚未被人注意的问题领域。为此&#xff0c;Git…

数据类型的通用操作

#通用操作有&#xff1a;for语句遍历&#xff0c;len()统计元素个数&#xff0c;是数据类型间的相互转换&#xff0c;元素的排序&#xff08;正反向&#xff09; 1.for语句遍历若遍历字典则 只去字典中的key(即名词) 2.各数据类型间的数据转换&#xff08;若为字典转化为列表…

2024年软件设计师中级(软考中级)详细笔记【7】面向对象技术(上)(分值10+)

目录 前言第7章 面向对象技术 &#xff08;上&#xff09;7.1 面向对象基础(3-4分&#xff09;7.1.1 面向对象的基本概念7.1.2 面向对象分析&#xff08;熟记&#xff09;7.1.3 面向对象设计7.1.4 面向对象程序设计7.1.5 面向对象测试 7.2 UML(3~4分)7.2.1 事务7.2.2 关系7.2.2…

超详细JDK安装+环境配置教程

安装jdk 1.首先在JDK官网进行下载 JDK会默认安装在C盘 program file文件下 2.并且在JDK安装的过程中会提示安装JRE JDK和JRE会安装在同一目录下 JDK通过命令行进行使用 JDK的目录 以下是JDK对应的目录 bin:存放可执行程序 其中包含java javac命令 Include&#xff1a;本地…

013_django基于大数据的高血压人群分析系统2024_dcb7986h_055

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍&#xff1a;CodeMentor毕业设计领航者、全网关注者30W群落&#xff0c;InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者&#xff0c;博客领航之星、开发者头条/腾讯云/AW…