C语言编程题
爱敲代码的罗根
勿忘曾许之愿,此句,与诸君共勉
展开
-
【C语言例题】接收一个整型值(无符号),按照顺序打印它的每一位
首先要明确我们的目标,既然是要按顺序打印每一位,那么就离不开 /10 和 %10 的操作了;以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!按顺序的话,是先从低位开始打印(4),再打印到高位(1);再加上递归,以实现该功能即可,别忘了给递归加上限制条件哦!接受一个整型值(无符号),按照顺序打印它的每一位。输入:1234,输出 1 2 3 4。原创 2023-07-17 10:29:48 · 556 阅读 · 1 评论 -
【C语言例题】由指针题目引出的一种解题方法
今天重温了以前刷过的C语言题目,发现有一种方法以前竟然没有印象。果然,温故而知新,古人诚不欺我!闲话少叙,下面进入正题。原创 2023-05-07 19:46:27 · 432 阅读 · 8 评论 -
【模拟实现】探索strlen:三种方法实现
先来讲讲 strlen 函数,好让大家理解今天要说的内容在这里就不放 cplusplus 的图片,一个参数一个参数讲他的意思了,我整理了这个函数的主要内容,大家直接看下边三个板块即可:strlen是一个C标准库函数,用于计算字符串的长度,即统计字符串中字符的个数(不包括空字符 '\0')。该函数需要一个以null结尾的字符串作为参数,返回该字符串的长度。在C语言中,字符串通常被表示为字符数组,每个字符占据一个字节的内存空间,并以NULL字符('\0')作为结尾。原创 2023-04-09 16:09:37 · 549 阅读 · 2 评论 -
【C语言经典例题!】逆序字符串
3. left指针往后走,right指针往前走,只要两个指针没有相遇,继续2,两个指针相遇后,逆置结束。2. 以递归的方式逆置源字符串的剩余部分,剩余部分可以看成一个有效的字符串,再以类似的方式逆置。对于刚入门的同学,多积累一种办法才是最重要的,学到后期再去考虑要用哪种更省内存、效率更高的写法。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!不难看出,循环写法理解起来比较容易,而递归写法虽然较难被想到,但整体会更简洁。:将参数字符串中的字符反向排列,不是逆序打印。原创 2023-03-25 18:33:40 · 481 阅读 · 5 评论 -
【C语言经典例题】求最小公倍数
关于这一步可以这样理解:等到 i * a 的值大到能整除 b 时,此时的 i * a ,即为 b 的倍数,同时, 又是 a 的 i 倍,因此也就是 a 和 b 的最小公倍数了。我们可以看到用了 while 循环,并且只要 m 对 a 和 b 同时取模,并且当两个结果都为零时,m就为 a , b 的最小公倍数了。叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。如果结果等于零 ,那么 i * a 的值即为 a 和 b 的最小公倍数。值得注意的是,这种写法中,m的取值用到了。原创 2023-03-18 10:19:21 · 2096 阅读 · 6 评论 -
【C语言例题】写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号
二进制相加思想:与十进制相同,先计算不考虑进位的相加结果( 0+0 得 0 , 1+1 进位得 0 , 1+0 得 1 ),使用。十进制相加思想: 15+07 , 先计算不考虑进位的相加结果 12 (因为 5+7 的不考虑进位的结果是 2 ,遇 10 进位。嘛),然后计算进位 5+7 进位是 10 ,则 10 与 12 再次相加,得到 22 ,进位为 0 ,则计算到此结束。然后计算相加的进位结果(同 1 的位置左移一位即可),使用相与后左移取得。不考虑进位的相加结果 0101^0111 -> 0010。原创 2023-03-07 21:52:55 · 862 阅读 · 0 评论 -
【C语言经典例题】调整数组使奇数全部都位于偶数前面
1. 给定两个下标left和right,left放在数组的起始位置,right放在数组中最后一个元素的位置。a. 如果left和right表示的区间[left, right]有效,进行b,否则结束循环。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!d. 如果left和right都找到了对应的数据,则交换,继续a。来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,详细的解析都在下面代码的注释中了,大家往下接着看就好了。输入一个整数数组,实现一个函数,原创 2023-03-05 13:52:17 · 1105 阅读 · 6 评论 -
【C语言经典例题】打印菱形
由此我们可以看出,上面的三角形,高为 n/2+1 ,而下面的三角形则是 n/2。我们可以看到,星号* 能打印在中间,前面一定有空格把他顶过去的。至此,上下两个三角形的规律已全部找出,接下来只要打印出来就好啦。在下半部分的三角形中,星号数 = n - 2 * 空格数。输入一个整数n(n为奇数),n为菱形的高,打印出该菱形。在上半部分的三角形中,星号数 = 行数 * 2 - 1。不难看出,在下半部分的三角形中。原创 2023-02-25 12:30:05 · 9031 阅读 · 36 评论 -
【C语言编程题】给定两个数组,编写一个函数来计算它们的交集。
通过这种方式找出交集数据,找出之后判断这个数组是否已经在返回数组中存在,不存在则添加到返回数组中即可。输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [1,2,2,1], nums2 = [2,2]以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!,将 nums1 数组中的每一个数字,判断是否存在于 nums2 数组中。下面请看完整代码,一些细节都在下面的代码注释中。给定两个数组,编写一个函数来计算它们的交集。原创 2023-02-14 15:07:40 · 976 阅读 · 0 评论 -
【C语言编程题】给定一个二进制数组, 计算其中最大连续 1 的个数
以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!,判断如果当前的统计数大于之前最大的则替换,然后继续下一个位置开始的统计即可。解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.给定一个二进制数组, 计算其中最大连续 1 的个数。输入:[1,1,0,1,1,1]想统计连续1的个数,也就是遇到0时表示连续中断。而替换的部分,我选择用三目操作符来表示。原创 2023-02-12 20:46:26 · 533 阅读 · 5 评论 -
【C语言编程题】输入一个整数,将这个整数以字符串的形式逆序输出,程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001。
示例: 129 , 129%10 得到 9 , 129/10 得到 12 ,循环进行操作直到数字除以 10 得到 0 为止。这道题只需要循环取出一个数字的每一位进行单独打印,打印完毕后换行即可。输入一个整数,将这个整数以字符串的形式逆序输出,程序不考虑负数的情况,若数字含有0,则逆序形式也含。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!输出描述:将这个整数以字符串的形式逆序输出。有0,如输入为100,则输出为001。输入描述:输入一个int整数。输入:1516000。原创 2023-02-09 14:21:22 · 2167 阅读 · 2 评论 -
【编程题之多数元素】给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素
示例: "23335" 首先从字符 2 开始计数 1 ,遇到 3 ,不同则 -1 ,互拼消耗 重新从剩下的 "335" 开始的过程,这时候保存的字符为 3 ,遇到 3 则计数 +1 , 遇到5则计数 -1 ,在计数不为 0 时,走到末尾保存的字符就是个数超过n/2 的字符。一个数组中有一个数字出现次数大于 n/2 ,从第 0 个字符开始,假设它就是最多的那个数字,遇到相同的数字则计数 +1 , 遇到不同的则计数 -1。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!原创 2023-02-08 10:23:30 · 1523 阅读 · 2 评论 -
【C语言编程题】给你一个整数数组 nums ,请计算数组的中心下标 。数组中心下标是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。求数组中心下标 寻找数组中心下标 python
左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。从数组的0下标处开始向后逐下标统计,计算当前下标左边之和,和右边之和,进行判断,相等则为中心下标,如。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。果数组循环结束都没有找到中心下标,则返回-1,表示没有中心下标。左侧数之和 sum = 0 ,(下标 0 左侧不存在元素),原创 2023-02-07 19:08:04 · 1135 阅读 · 2 评论 -
【编程题】打印从1到最大的n位数
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。这个清楚后动态申请空间,将数值填入就可以了,需要注意的是数组下标从0开始,而数值从1开始。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!这里首先要清楚n位数中最大的数字,实际上就是 10^n - 1。复制返回值:[1,2,3,4,5,6,7,8,9]1位数: 10^1 - 1。2位数: 10^2 - 1。3位数: 10^3 - 1。原创 2023-02-06 12:27:18 · 253 阅读 · 4 评论 -
【编程题】根据输入的日期,计算是这一年的第几天。输入保证年份为4位数且日期合法
其中需要注意的是平年和闰年的判断,而且是闰年的月份大于 2 的时候,也就是 2 月走完,总天数才能加 1 (比如 2000年2月18日 ,虽然是闰年,但是 2月 都没走完那是不能加上闰年多出的一天的).这道题简单解法其实将每个月的天数枚举出来,然后根据当前月份向前累加满月的天数,然后再加上当前月所在的天数。这道题各位只需要注意上面第二大点的解题思路,同时了解闰年的定义标准即可,其他需要注意的地方在代码里面都有注释。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!原创 2023-02-05 11:45:28 · 367 阅读 · 4 评论