C语言:刷题日志(2)
一.币值转换
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。
输入格式:
输入在一行中给出一个不超过9位的非负整数。
输出格式:
在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。
输入样例1:
813227345
输出样例1:
iYbQdBcScWhQdBeSf
输入样例2:
6900
输出样例2:
gQjB
代码讲解:
由题目我们知道我们要将0-9的数转换为字母a-j,并用S、B、Q、W、Y分别代表拾、百、仟、万、亿,所以我们要先建立两个数组arr数组中存放a-f的字母,str数组中存放数字代表的位置,由于没有个位,所以将个位设为空格S,B,Q,W,S,B,Q,Y,分别代表十,百,千,万,十万,百万,千万,亿。由于我们要将各个数进行改变和插入代表的位置,所以我们要进行分割数字,正因此我们要建立一个数组a用来存放分割出的数字,并设立一个计数器,计算数字的个数。当然我们输入的数要是为负数就要重新输入,并且输入的数为0时,直接就可以打印a(a代表数字0),但是,当我们输入的数不是负数也不是0时,就要利用循环,将数模上10得到每一个数和总的个数count。得到总的个数后,因为数组是从0开始的所以我们先count--,得到最大的数组下标,之后我们就要进行判断了,当数组下标得到的数等于0,并且数组下标在4-6之间,就要打印'W',这是因为当我们的数为808000000时,我们应该叫8亿零8百万,800000000时,为8亿,800080000时,为8亿零8万,所以,只有0在count=4-6之间,才会打印'W',当然,我们也发现800080000,我们会叫8亿零8万,而不是8亿0008万0000,所我们要建立一个条件当一个数为0时,只有往下找到不为0的数时才会打印'a',所以我们重新建立一个计算器count1=count-1,新的计数器初始下标为原计数器值为0的下一位数的下标,当然如果下一位还为0,我们就要不停的找直到找到最后,所以我们要利用循环,在循环中如果找到不为0的数,就让它打印'a',并让原计数器count=新计数器count1的值后跳出循环,(当然,当找到最后时count1会等于-1,如果是这样就可以直接退出整个循环了。),跳出小循环后重新回到大循环中,开始打印这次循环的数所对应的字母和所代表的位置(当个位有数的时候,由于个位并没有所代表的位置,所以我们不打印个位的所代表的位置,即str[0]不打印)。之后再不断的进行循环直到找完为止。
#include<stdio.h>
int main()
{char arr[10]={'a','b','c','d','e','f','g','h','i','j'};char str[9]={' ','S','B','Q','W','S','B','Q','Y'};int n=0;int a[10];int count=0;int count1=0;scanf("%d",&n);if(n<0){scanf("%d",&n);}if(n==0){printf("a");}while(n!=0){a[count]=n%10;n/=10;count++;}while(count>0){count--;if(a[count]==0){if(count>=4 &&count<7){printf("W");}count1=count-1;while(count1>=0){if(a[count1]!=0){printf("a");count=count1;break;}count1--;}if(count1==-1){return 0;}}printf("%c",arr[a[count]]);if(count!=0){printf("%c",str[count]);}}return 0;
}
二.约分最简分式
分数可以表示为分子/分母
的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。
输入格式:
输入在一行中给出一个分数,分子和分母中间以斜杠/
分隔,如:12/34
表示34分之12。分子和分母都是正整数(不包含0,如果不清楚正整数的定义的话)。
提示:
- 对于C语言,在
scanf
的格式字符串中加入/
,让scanf
来处理这个斜杠。 - 对于Python语言,用
a,b=map(int, input().split('/'))
这样的代码来处理这个斜杠。
输出格式:
在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用分子/分母
的形式表示分数。如5/6
表示6分之5。
输入样例:
66/120
输出样例:
11/20
代码讲解:
这道题其实就是让我们把分子和分母进行约分,而让让分子和分母进行约分,我们需要得到分子和分母的最大公约数,而对于求最大公约数我们有一个很简单的方式辗转相除法,我们可以举个例子
18和30的最大公约数
18/30=0余18
30/18=1余12
18/12=1余6
12/6=2余0
所以最大的公约数为6
这样我们就可以直到两个数的最大公约数就是两个数取余,如果余数不为0,就将被除数变为原除数,除数变为所得余数,在进行取余,直到余数为0时,除数就是我们想要的最大公约数。
所以为了防止数被改变,我们要将数赋给两个新的变量 ,让他们进入循环,将两个数得到的余数赋给r,并将b1赋给a1,r的值赋给r,直到余数为0时退出循环,并让a和b除上b1。
include<stdio.h>
int main()
{int a,b;scanf("%d/%d",&a,&b);int r=0;int a1=a;int b1=b;while(r=a1%b1){a1=b1;b1=r;}printf("%d/%d",a/b1,b/b1);return 0;
}
三.单词长度
你的程序要读入一行文本,其中以空格分隔为若干个单词,以.
结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it's
算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.
不计算在内。
输入格式:
输入在一行中给出一行文本,以.
结束
提示:用scanf("%c",...);
来读入一个字符,直到读到.
为止。
输出格式:
在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
输入样例:
It's great to see you here.
输出样例:
4 5 2 3 3 4
代码讲解:
根据题目要求我们知道空格和'.'不计入长度,并且以'.'结束。所以我们可以利用do ...while循环我们需要先进行字符串的输入再进行循环判断,在循环中如果我们不等于空格和'.',我们就让计数器count++,直到遇到空格和'.'了,并且count也不等于0(即,第一个数不为空格),就打印count,当然,我们发现输出数的后面要有空格,而最后一个数后面没有空格,所以我们可以做一个标志flag=0,如果fla=0,就打印第一个数,并改变flag的值,第一个数打印之后,后面的数就可以用先打印空格再打印数的形式进行输出。
#include<stdio.h>
int main()
{char a=0;int count=0,flag=0;do{scanf("%c",&a);if(a!=' '&& a!='.'){count++;}else{if(count!=0){if(flag==0){printf("%d",count);flag=1;}else{printf(" %d",count);}count=0;}}}while(a!='.');return 0;
}
四.念数字
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu
字。十个数字对应的拼音如下:
0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
输入格式:
输入在一行中给出一个整数,如:1234
。
提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如yi er san si
。
输入样例:
-600
输出样例:
fu liu ling ling
代码讲解:
这道题其实很简单,其实就是让我们将0-9的数字转换成拼音的形式打印,这样其实我们可以将数放入数组再利用 strlen函数求出数组的长度,再利用for循环找到每个数,并利用switch语句,让这些数和符号找到对应的位置并打印拼音注意打印完一个拼音后打印一个空格。
#include<stdio.h>
#include<string.h>
int main()
{char arr[100];scanf("%s",arr);int i=0;for(i=0;i<strlen(arr);i++){switch(arr[i]){case '-':printf("fu");break;case '0':printf("ling");break; case '1':printf("yi");break; case '2':printf("er");break; case '3':printf("san");break; case '4':printf("si");break;case '5':printf("wu");break;case '6':printf("liu");break;case '7':printf("qi");break;case '8':printf("ba");break;case '9':printf("jiu");break;default:break;}if(i!=strlen(arr)-1){printf(" ");}}return 0;
}
五. 删除字符串中的子串
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
输入格式:
输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。
输出格式:
在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。
输入样例:
Tomcat is a male ccatat
cat
输出样例:
Tom is a male
代码讲解:
关于这道题我们利用了多个函数(关于这些函数的运用大家可以去看我之前写的字符函数和字符串函数)首先我们先创立三个字符串数组,str1,str2,str3。str3是用来存放最后要输出的字符串的,我们可以用gets函数来获取字符串,之后创建一个字符指针p,之后利用strstr函数查找字符串,并将其赋给p,并作为循环条件,如果p不为空,就将查找到的字符串的首地址加上要查找字符串的长度(其实就是跳过要查找的字符串,得到要查找字符串之后的字符串),并利用strcpy函数将得到的字符串拷贝到str3中,然后将查找到的字符串的首地址即p设置为'\0'(即,将查找到的字符串和之后的的字符串删除),之后再利用strcat函数将str3的值赋给新的str1,最后输出str1即可。
#include<stdio.h>
#include<string.h>
int main()
{char str1[100]={0};gets(str1);char str2[100]={0};gets(str2);char str3[100]={0};char* p;while((p=strstr(str1,str2))!=NULL){strcpy(str3,p+strlen(str2));*p='\0';strcat(str1,str3);}puts(str1);return 0;
}
相关文章:

C语言:刷题日志(2)
一.币值转换 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代…...

微带结环行器仿真分析+HFSS工程文件
微带结环行器仿真分析HFSS工程文件 工程下载:微带结环行器仿真分析HFSS工程文件 我使用HFSS版本的是HFSS 2024 R2 参考书籍《微波铁氧体器件HFSS设计原理》和视频微带结环行器HFSS仿真 1、环形器简介 环行器是一个有单向传输特性的三端口器件,它表明…...

怎么仿同款小程序的开发制作方法介绍
很多老板想要仿小程序系统,就是想要做个和别人界面功能类似的同款小程序系统,咨询瀚林问该怎么开发制作?本次瀚林就为大家介绍一下仿制同款小程序系统的方法。 1、确认功能需求 想要模仿同款小程序系统,那么首先需要找到自己想要…...

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现
一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息࿰…...

0.91寸OLED屏幕大小的音频频谱,炫酷
(后文有详细介绍) 频谱扫描: 迷你音频频谱——频率扫描 音乐律动: 迷你音频频谱——频率扫描 迷你音频频谱——音乐2 迷你音频频谱——音乐3 一、简介 音频频谱在最小0.91寸OLED 屏幕上显示,小巧玲珑 二、应用场景 本…...

6. LinkedList与链表
一、ArrayList的缺陷 通过源码知道,ArrayList底层使用数组来存储元素,由于其底层是一段连续空间,当在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后搬移,时间复杂度为O(n),效率比…...

Statcounter Global Stats 提供全球统计数据信息
Statcounter Global Stats 提供全球统计数据信息 1. Statcounter Global Stats2. Mobile & Tablet Android Version Market Share WorldwideReferences Statcounter Global Stats https://gs.statcounter.com/ Statcounter Global Stats are brought to you by Statcounte…...

Linux kernel中的dts dtsi dtb dtc dtb.img dtbo.img
1、问题 kernel与hsm会设置一些gpio,但是某些gpio会在kernel与hsm侧共同设置,导致最终的设置结果失败,将kernel侧在dts文件中设置的gpio注释掉之后,发现hsm设置gpio时还是失败 2、问题原因 因为dts文件不仅仅会影响kernel镜像&…...

微信小程序页面制作——个人信息
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

使用C++11的`std::async`执行异步任务:实战指南
使用C11的std::async执行异步任务:实战指南 在现代软件开发中,异步编程是提高应用程序性能和响应速度的重要手段。C11引入了std::async,使得编写异步任务变得更加简单和直观。本文将详细介绍如何使用std::async执行异步任务,并提…...

【高阶数据结构】B树、B+树、B*树
B树、B树、B*树 1. 常见的搜索结构2. B树概念3. B树的插入分析4. B树的插入实现4.1 B树的节点设计4.2 B树的部分插入实现14.3 B树的查找4.4 B树的部分插入实现24.5 插入key的过程4.7 B树的插入完整代码4.8 B树的简单验证4.9 B树的删除4.10 B树的性能分析 5. B树6. B*树7. 总结8…...

HBuilderx中vue页面引用scss样式
scss为css样式的预编译器,引入了变量、嵌入、混合、集成、引入等功能,相对于css样式,实现了样式的编程,具有更灵活的样式编写模式。 那么在HBuilderx中,“.vue”格式页面如何调用scss样式呢?详细如下&#…...

粒子群算法原理的示例介绍
一:粒子群优化算法的介绍 粒子群优化算法(PSO)是一种基于群体智能的优化算法,于1995年提出。它受到鸟群狩猎行为的启发,通过模拟鸟群或鱼群的社会行为来进行问题的求解。 基本原理 粒子群算法中,每个解决…...

GNU/Linux - Open函数使用的O_CLOEXEC flag
在 Linux 中,“O_CLOEXEC ”标志与 “open ”系统调用一起使用,用于指定在使用 “exec ”系列函数(如 “execve”、“execl ”等)执行新程序时,“open ”返回的文件描述符应自动关闭。 In Linux, the O_CLOEXEC flag i…...

AWQ量化(Activation-aware Weight Quantization)
论文: AWQ: Activation-aware Weight Quantization for On-Device LLM Compression and Acceleration 中文解读: 深入理解AWQ量化技术 - 知乎 (zhihu.com) 动机:端侧设备用LLM,为了减少显存占用量,所以要用INT4量化&am…...

SprinBoot+Vue体育商品推荐的设计与实现
目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质…...

【Python基础】Python函数
本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢! 文章目录 一、前言二、函数的定义与调用三、函数参数3.1 位置参数3.2 默认参数3.3 可变数量参数(或不定长参数…...

【超简单】1分钟解决ppt全文字体一键设置
省流 ppt的全部字体需要在“幻灯片母版”里面,“自定义字体”去设置好标题与正文的字体之后才算全部设置完毕 “视图”---“幻灯片母版” 找到“字体”---“自定义字体” 设置好中文和西文的字体,都可以按照自己的选择来,保存即可 吐槽 之…...

数组与贪心算法——179、56、57、228(2简2中)
179. 最大数(简单) 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 解法一、自定义比较…...

WireShark过滤器
文章目录 一、WireShark过滤器概念1. 捕获过滤器(Capture Filters)2. 显示过滤器(Display Filters)3. 捕获过滤器与显示过滤器的区别4. 过滤器语法结构实际应用场景 二、WireShark捕获数据包列表1. **No.(序号…...

2024年全新deepfacelive如何对应使用直播伴侣-腾讯会议等第三方软件
# 2024年全新deepfacelive如何对应使用直播伴侣-腾讯会议等第三方软件 前提按照之前的步骤打开deepfacelive正确配置并且在窗口已经输出了换脸后的视频,不懂步骤可以移步 https://doc.youyacao.com/88/2225 ## 首先下载obs并配置 https://obsproject.com/ 通过…...

告别懵逼——前端项目调试与问题排查方法小结
在日常工作中,我们常常会遇到以下两类典型的挑战: 场景一: 接手无文档的老项目 1、情景描述: 你接手了一个历史久远的项目,项目文档缺失,前任开发者已经离开,而你对当前的业务逻辑和代码结构都…...

[数据集][目标检测]肺炎检测数据集VOC+YOLO格式4983张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4983 标注数量(xml文件个数):4983 标注数量(txt文件个数):4983 标注…...

顶层const和底层const
在C中,const修饰符用于声明常量,有两种常见的形式:顶层const和底层const,它们之间的区别在于它们修饰的对象及其在不同场景中的作用。 1. 顶层const (Top-level const) 顶层const用于修饰变量本身,使其成为常量。这意…...

嵌入式Openharmony系统构建与启动详解
大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建 首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件…...

锡林郭勒奶酪品牌呼和浩特市大召店盛大开业
礼献中秋,香飘乳都。为进一步拓展锡林郭勒奶酪区域公用品牌产品销售渠道,9月8日,锡林郭勒奶酪区域公用品牌大召店在呼和浩特市大召广场月明楼隆重开业,现场为第三批新授权的39家奶酪生产经营主体代表授牌。至此,锡林郭…...

【Java算法】模拟
🔥个人主页: 中草药 🔥专栏:【算法工作坊】算法实战揭秘 🧣 一.模拟算法 模拟算法和传统的算法有一些不同之处,更多的是对题目要求的理解,通过代码的方式去模拟实现一道题目在现实中的实现方法…...

标准库标头 <filesystem> (C++17)学习之文件类型
本篇介绍filesystem文件库的文件类型API。 文件类型 is_block_file (C17) 检查给定的路径是否表示块设备 (函数) is_character_file (C17) 检查给定的路径是否表示字符设备 (函数) is_directory (C17) 检查给定的路径是否表示一个目录 (函数) is_empty (C17) 检查给定的路径是…...

基于51单片机的自动转向修复系统的设计与实现
文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设…...

mysql笔记4(数据类型)
数据库的数据类型应该是数据库架构师(DBA)和产品经理沟通后依据公司的项目、业务而定的,而且会不停地变化。数据类型的选择方面没有一个统一的标准,但是应该符合业务、项目的逻辑标准。 菜鸟教程 Mysql 数据类型 文章目录 1. int类型2. 浮点数3. 定点数4…...