函数和指针练习

模拟实现strcpy

库函数strcpy的功能

逻辑:两个指针,在遍历的同时,目标字符串用源字符串对应值进行赋值

优化:简洁版本

提高健壮性:1.防止源字符串被修改——const常属性

2.判断传入的是否是空指针——assert断言

完整版:

模拟实现strlen

库函数strlen的功能

逻辑:从数组指针开始,循环遍历字符串,用临时变量计算长度

提高健壮性:1.防止源字符串被修改——const常属性

2.判断传入的是否是空指针——assert断言

BC51-三角形判断

描述

KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。

输入描述:

题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。

输出描述:

针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。

写一个函数打印数组内容(使用指针而不是数组下标)

字符串逆序

写一个函数,可以逆序一个字符串的内容。

牛客网在线OJ链接

核心思想:不适用scanf(如果输入的字符串中有空格,无法接收)

改用gets来读取buffer缓冲区中的字符串

逻辑:用两侧left和right两个指针,相向运动交换字符串内容

计算求和

求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,

例如:2+22+222+2222+22222

更通用的版本:用来求a的前n项之和

打印水仙花数

求出0~100000之间的所有“水仙花数”并输出。

“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。

核心思想:1.判断i是n位数

2.得到每一位数,求n次方之和,并比较

函数版本:

打印菱形

用C语言在屏幕上输出以下图案:

核心思想:分为两部分。上半部分和下半部分的逻辑不同,用条件判断打印的是*还是空格

喝汽水问题

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)。

核心思想:用空瓶数进行迭代计算

改进:找规律 total = 2 * money - 1

求最小公倍数

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

https://www.nowcoder.com/questionTerminal/22948c2cad484e0291350abad86136c3

逻辑一:取a和b中的较大值,向上一次递增直到能够同时整除a和b

效率较低,时间开销大

逻辑二:取a和b中的较大值,乘以一个依次增大的i,直到结果与另一个数乘以j相等

逆置字符串

将一句话的单词进行倒置,标点不倒置。比如 "I like beijing.",经过处理后变为:"beijing. like I"。

字符串长度不超过100。

https://www.nowcoder.com/questionTerminal/8869d99cf1264e60a6d9eff4295e5bab

两步反转法:先将整个字符串倒置,再分别将每个单词倒置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ta亻也

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值