PTA-练习9

目录

实验10-4 递归实现顺序输出整数

实验10-10 十进制转换二进制

实验10-6 递归求简单交错幂级数的部分和

实验11-1-2 输出月份英文名

实验11-1-6 指定位置输出字符串

实验11-1-8 查找子串


递归的基本思路:

  1. 推出递归的条件或者进入递归的条件
  2. 每层递归需要执行的代码

第一种简单的就是:像Fabonacci数列和求阶乘这样,只需要判断递归推出的条件,然后递归加或者乘

int f( int n ){if(n==0){return 0;}if(n==1){return 1;}return f(n-1)+f(n-2);
}

第二种复杂一点就是,满足条件进入递归,直到最深层后不满足条件,然后依次推出递归执行相应的操作,比如依次输出123456的数字

void printdigits( int n ){if (n / 10 > 0)printdigits(n / 10);printf ("%d\n", n % 10);
}

实验10-4 递归实现顺序输出整数

void printdigits( int n ){if (n / 10 > 0)printdigits(n / 10);printf ("%d\n", n % 10);
}

 实验10-10 十进制转换二进制

void dectobin( int n ){if(n/2!=0){dectobin(n/2);}printf("%d",n%2);
}

 实验10-6 递归求简单交错幂级数的部分和

#include <stdlib.h>
double fn( double x, int n ){if(n==0){return 0;}return pow(-1,n-1)*pow(x,n)+fn(x,n-1);
}


实验11-1-2 输出月份英文名

强调一下,函数里面如果要返回函数里面的形式参数,需要使用指针形式

  • 如果这里使用char str[12][100]定义二维字符串数组的话,参数传递不出函数就会被释放,所以使用指针字符串
  • 还有就是,指针指向的内容为空的话,NULL表示
//好好好,考英语是吧
#include <string.h>
char *getmonth( int n ){if(n<1||n>12){return NULL;}char *str[12]={"January","February","March","April","May","June","July","August","September","October","November","December"};return str[n-1];
}

如果不想这么麻烦直接直接:

char *getmonth( int n ){switch(n){case 1: return "January";case 2: return "February";case 3: return "March";case 4: return "April";case 5: return "May";case 6: return "June";case 7: return "July";case 8: return "August";case 9: return "September";case 10: return "October";case 11: return "November";case 12 :return "December";default: return NULL;}
}

实验11-1-6 指定位置输出字符串

#include<string.h>
#include <stdlib.h>
char *match( char *s, char ch1, char ch2 ){int n=strlen(s);char *a=(char*)malloc(sizeof(char)*n);int j=0;int i=0;for(i=0;i<n;i++){if(s[i]==ch1){while(s[i]!=ch2){a[j]=s[i];j++;i++;}a[j]=ch2;j++;break;}//of if;}printf("%s\n",a);for(;i+1<n;i++){a[j]=s[i+1];j++;}return a;}

实验11-1-8 查找子串

返回数组中某个元素的指针,直接使用数组名a+元素的下标就可以了

比如求char a[100]="dhdssjsjbsdd",中求元素字符‘b’的地址指针,直接b+8就可以了

#include <stdlib.h>
#include <string.h>
//sjdhjdhdj
//dhd
/*char *search( char *s, char *t ){int n=strlen(s);int j=0;int i=0;int m=strlen(t);for(i=0;i<n;i++){if(s[i]==t[j]){j++;}else if(s[i]!=t[j]){j=0;}if(j==m){return s+i-m+1;}}return -1;
}
*/
#include <string.h>char *search(char *s, char *t) {int n = strlen(s);int m = strlen(t);for (int i = 0; i < n; i++) {int j = 0;while (j < m && s[i + j] == t[j]) {j++;}if (j == m) {return s + i;}}return NULL;
}/*
char *search( char *s, char *t )
{return strstr(s,t);
}*/

 OKOK,以后字符串函数为四个了

  1. strlen(a),返回字符串a的长度
  2. strcpy(b,a),把字符串a赋值给字符串b(copy,不能使用=)
  3. strcmp(a,b),比较字符串a比的大小,a>b返回正数,等于返回0
  4. strstr(a,b),查找子串b在主串a中出现的位置,如果出现返回第一个字符的地址,如果没有则返回NULL

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

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

相关文章

【MySQL】内外连接——内连接、外连接、左外连接、右外连接、内外连接的区别、左外连接和右外连接的区别

文章目录 MySQLMySQL表的内连接和外连接1. 内连接2. 外连接2.1 左外连接2.2 右外连接 3. 内外连接的区别4. 左外连接和右外连接的区别 MySQL MySQL表的内连接和外连接 MySQL 中的内连接&#xff08;INNER JOIN&#xff09;和外连接&#xff08;包括左外连接 LEFT JOIN 和右外连…

【Web应用技术基础】CSS(4)——背景样式

第1题&#xff1a;背景颜色 .html <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Hello World</title><link rel"stylesheet" href"step1/CSS/style.css"> </head><body>&…

左侧或水平导航菜单栏与main区域联动

系列文章目录 一、elementui 导航菜单栏和Breadcrumb 面包屑关联 二、左侧导航菜单栏与main区域联动 文章目录 系列文章目录前言一、实现步骤1.<el-menu>中设置属性router为true2.<el-menu-item>中设置路由 route"/"3.<el-main>里设置路由出口4…

MS Edge浏览器坏了?网页播放视频的速度不对

前言 小白是MS Edge浏览器的重度用户。电脑上必须有的两个浏览器&#xff1a;Google Chrome和Microsoft Edge。 前段时间小白在使用MS Edge的时候出了问题&#xff1a;播放视频或者音频的时候总是被莫名其妙加速或者减速&#xff0c;类似于播放视频时候的0.5x或者2.0x。 当时…

红黑树介绍及插入操作的实现

&#x1f389;个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名乐于分享在学习道路上收获的大二在校生 &#x1f648;个人主页&#x1f389;&#xff1a;GOTXX &#x1f43c;个人WeChat&#xff1a;ILXOXVJE &#x1f43c;本文由GOTXX原创&#xff0c;首发CSDN&…

ES学习日记(二)-------集群设置

上一节写了elasticsearch单节点安装和配置,现在说集群,简单地说就是在多台服务器上搭建单节点,在配置文件里面增加多个ip地址即可,过程同单节点部署,主要说集群配置 注意:不建议在之前单节点es上修改配置为集群,据说运行之后会生成很多文件,在单点基础上修改容易出现未知问题,…

第四篇:3.3 无效流量(Invalid traffic) - IAB/MRC及《增强现实广告效果测量指南1.0》

翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇广告效果测量定义和其他矩阵之- 3.1 广告印象&#xff08;AD Impression&#xff09;第三篇广告效果测量定义和其他矩阵之- 3.2 可见性 &#xff08;Viewability&#xff09;第四篇广…

STM32学习笔记(10_2)- I2C通信协议MPU6050简介

无人问津也好&#xff0c;技不如人也罢&#xff0c;都应静下心来&#xff0c;去做该做的事。 最近在学STM32&#xff0c;所以也开贴记录一下主要内容&#xff0c;省的过目即忘。视频教程为江科大&#xff08;改名江协科技&#xff09;&#xff0c;网站jiangxiekeji.com 本期开…

Base64编码的全面介绍

title: Base64编码的全面介绍 date: 2024/3/31 18:55:49 updated: 2024/3/31 18:55:49 tags: Base64编码网络传输文本转换数据膨胀非加密性质应用场景安全传输 1. Base64的定义和作用 Base64是一种用64个字符表示二进制数据的编码方式&#xff0c;通常用于在网络传输中将二进…

【Vue】动态样式

内联样式的动态样式 body(){ boxASelect:false, } v-bind:style"{borderColor:boxASelect ? red : #ccc}" <body><header><h1>Vue Dynamic Styling</h1></header><section id"styling"><div class"demo&quo…

flutter 修改app名字和图标

一、修改名字 在Android中修改应用程序名称&#xff1a; 在AndroidManifest.xml文件中修改应用程序名称&#xff1a; 打开Flutter项目中的android/app/src/main/AndroidManifest.xml文件。找到<application>标签&#xff0c;然后在android:label属性中修改应用程序的名称…

[幻灯片]软件需求设计方法学全程实例剖析-03-业务用例图和业务序列图

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 pdf已上传至本号的CSDN资源&#xff0c;或到以下地址下载&#xff1a; http://umlchina.com/training/umlchina_03_bm.pdf

算法学习——LeetCode力扣补充篇2(724. 寻找数组的中心下标、34. 在排序数组中查找元素的第一个和最后一个位置、922. 按奇偶排序数组 II、35. 搜索插入位置、24. 两两交换链表)

算法学习——LeetCode力扣补充篇2 724. 寻找数组的中心下标 724. 寻找数组的中心下标 - 力扣&#xff08;LeetCode&#xff09; 描述 给你一个整数数组 nums &#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右…

FPGA亚稳态学习总结

首先是组合逻辑电路考虑的是竞争冒险&#xff0c;冒险会产生毛刺。重点研究如何去毛刺 时序逻辑电路考虑的是时序不满足会产生的亚稳态问题&#xff1a;如何考量时序满不满足呢&#xff1f;根据不同的场景又有不同的说法。 时序分析的两组基本概念 建立时间与保持时间 1.在…

Docker 轻量级可视化工具 Portainer

1. 是什么 它是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便管理Docker环境&#xff0c;也包括单机环境和集群环境。 2. 安装 官网&#xff1a;Kubernetes and Docker Container Management Software 安装路径&#xff1a;Install the Compose plug…

本地搭建多人协作ONLYOFFICE文档服务器并结合Cpolar内网穿透实现公网访问远程办公

文章目录 1. 安装Docker2. 本地安装部署ONLYOFFICE3. 安装cpolar内网穿透4. 固定OnlyOffice公网地址 本篇文章讲解如何使用Docker在本地服务器上安装ONLYOFFICE&#xff0c;并结合cpolar内网穿透实现公网访问。 Community Edition允许您在本地服务器上安装ONLYOFFICE文档&…

spring注解@EventListener实现监听原理

文章目录 EventListener使用方式EventListener实现原理1.引入时机2 初始化时机3 作用时机->将加了EventListener注解的方法识别出来&#xff0c;并封装为监听器&#xff0c;加载spring容器中 总结 EventListener使用方式 package com.cyl.listener;import org.springframew…

MFC(二)集成基础控件

目录 OnCreateCStatic【标签&#xff0c;图片】CEdit【文本框&#xff0c;密码框&#xff0c;数值框&#xff0c;文本区】CButton【按钮&#xff0c;单选按钮&#xff0c;多选按钮】CComboBox【下拉列表&#xff0c;列表】CSliderCtrl【滑动条】CListCtrl【表格】CAnimateCtrl【…

时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测

时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测 目录 时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测&#xff08;完整源码…

Mysql数据库:MHA高可用架构

目录 前言 一、MHA概述 1、什么是MHA 2、MHA的特点 3、MHA的组成 4、MHA的工作原理 5、故障切换备选主库的算法 二、部署MHA高可用架构 1、环境部署 2、部署主从同步 2.1 修改主配置文件并创建软链接 2.1.1 master 修改主配置文件并创建软连接 2.1.2 slave1 修改主…