C语言刷题
作为初学者刷题心得
GO1ING
一个不知名程序员
展开
-
C语言实现L1-025 正整数A+B
这里我们注意只要我们读到的不是换行,我们就可以一直读,我们先假设输入的两个字符串是数字的话,那么对应的a,b就为0,如果不是那么就是-1。如果输入的是空格的话,我们就让flag由0变为1,进入下一个字符的输入和判断。我们先创建一个循环不停的从键盘上获取字符,并不断判断是否为数字,知道我们读到空格,再获取第二数字即可。在开始写这道题之前我们需要先了解一下isdigit函数,这里我就推荐一篇别人的博客来了解一下。当然除了判断是不是数字的函数,也有判断是否为字母的函数isalpha。原创 2022-12-20 08:23:59 · 281 阅读 · 0 评论 -
c语言实现L1-016 查验身份证
这道我们的思路是先将权重存入整数类型的数组,校验码存入字符类型数组。之后再创建一个变量,放入身份证号码,当然也是字符型数组,这样方便我们之后比较。我们之后就设置一个flag1和flag2用来分别判断身份证号码是否全为数字,和最后一位是否满足校验码中的字符。这里我们注意只有计算出Z后对应的校验字符是否为输入的身份证号码的最后一位,这里不太好理解,需要我们注意。原创 2022-12-15 19:22:00 · 1548 阅读 · 1 评论 -
C语言实现L1-009 N个数求和
(2)用递归的方法:这样可以节省代码量,但是思路是一样。2.写一个函数求出分子和分母的最大公约数,进行化简。求最大公约数,我们用辗转相除法,可以用两种方法实现。在最后我们要注意题目的输出要求,也是本题的易错点。我们将输入的分数的分子看成a,分母看成b。1.将输入的数据全部进行通分。(1)非递归的方式:代码如下。可以参考我往期的博客。3.按要求进行输出。原创 2022-12-14 17:13:52 · 575 阅读 · 0 评论 -
c语言实现L1-003 个位数统计
先将输入的数看成字符串存入数组中,我们知道通过Ascii表的转换知道,字符数字减去字符0就是十进制的数,我们再创建一个数组存入每个数重复的次数。再历遍整个数组的时候减去字符0,放入C中,这样c的取值范围就是0到9了,这样创建的另一个数组对应的值就可以加1了。我们先求出数组的长度,这样就可以用for循环历遍整个数组,原创 2022-12-12 15:25:22 · 1019 阅读 · 0 评论