![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 62
4.O.4
C盘敲满,年薪百万
展开
-
016-打印菱形-【c语言版】
文章目录1. 题目2. 分析3. 代码文章索引后记1. 题目题目:打印菱形要求:写一个函数,接收一个整型参数n,n表示菱形的行数且n为大于2的奇数示例1:输入:5输出: * ******** *** *示例2:输入:7输出: * *** ************ ***** *** *2. 分析通过示例2可以看到,如果输入7,则菱形打印7行,前四行的 * 的个数分别为 1、3、5、7,左边空格的个数分别为 3、2、1、0;后三行的 * 的个原创 2021-11-21 17:34:48 · 446 阅读 · 2 评论 -
015-字符串逆序-【c语言版】
文章目录1. 题目2. 代码文章索引后记1. 题目题目:字符串逆序要求:写个函数,可以逆序一个字符串的内容。示例1:输入:abcd输出:dcba示例2:输入:hello world!输出:!dlrow olleh2. 代码char * reverse_string(char* str) { assert(str); int len = strlen(str); int left = 0; int right = len - 1; while (left &l原创 2021-11-21 16:54:33 · 540 阅读 · 0 评论 -
014-水仙花数-【c语言版】
文章目录1. 题目2. 代码文章索引后记1. 题目题目:求出0 ~100000之间的所有“水仙花数”并输出。“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身.如:153 = 1 ^ 3 + 5 ^ 3 + 3 ^ 3, 则153是一 个"水仙花数"。2. 代码int main() { int i = 0; for (i = 0; i < 100001; i++) { // 临时保存待计算的数 int temp = 0; // 153 // 记录t原创 2021-11-21 14:12:43 · 525 阅读 · 0 评论 -
013-a+aa+aaa+...【c语言版】
文章目录1. 题目2. 代码文章索引后记1. 题目题目:在不考虑数据溢出的情况下,求 Sn = a+aa+aaa+aaaa+aaaaa+…的前n项和,其中a和n都是用户输入的整型数据示例1:输入:1 3输出:123解释:1 + 11 + 111 = 123示例2:输入:1 4输出:1234解释:1 + 11 + 111 + 1111 = 1234示例3:输入:2 3输出:246解释:2 + 22 + 222 = 2462. 代码int sum(int a,原创 2021-11-21 12:07:24 · 186 阅读 · 0 评论 -
012-交换变量-【c语言版】
文章目录1. 题目2. 代码实现3. 难度升级文章索引后记1. 题目题目:写一个函数,完成两变量的位置。示例1输入:3 5输出:5 3示例2:输入:9 0输出:0 92. 代码实现实现逻辑很简单,这里我就不进行分析了void swap(int* n, int* m){ int temp = *n; *n = *m; *m = temp;}【测试】int main(){ int n = 4; int m = 5; printf("%d %d\n", n,原创 2021-11-21 11:40:13 · 850 阅读 · 0 评论 -
011-奇偶位-【c语言】
文章目录1、题目2、分析3、代码1、题目题目:获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列(先打印奇数序列).说明:假设在32位环境下;第几位从高地址开始数【示例】获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列输入: 13输出:00000000000000100000000000000011解释:13 对应的32位二进制为:00000000 00000000 00000000 00001101奇数位序列:0000000000000010偶数原创 2021-11-18 17:12:36 · 324 阅读 · 0 评论 -
010-numberOfDiffInBinary-【c语言】
文章目录1、题目2、分析3、代码文章索引后记1、题目输入两个不同的int型整数,统计对应二进制位有多少个不同(假设在32位的机器上进行)如:输入: 13 21输出: 2解释:13 对应的二进制为 00000000 00000000 00000000 0000110121 对应的二进制位 00000000 00000000 00000000 000101012、分析【思路一】将两个数的每一个二进制位分别进行比较是否相等【思路二】将两个数进行异或运算,而异或运算的规原创 2021-11-18 13:29:21 · 331 阅读 · 0 评论 -
009-2的n次方-【c语言】
文章目录1、题目2、分析3、代码文章索引后记1、题目题目:写一个函数,用于判断该数是不是2的n次方得到的值(不考虑负数情况)2、分析【思路】一个数是2的n次方,则这个数的2二进制数只有一个1(不考虑负数情况)例如:1 = 201 对应的二进制为 00012 = 212 对应的二进制为 00104 = 224 对应的二进制为 01008 = 238 对应的二进制为 1000. . . . . .在 上一篇文章 中我提到了一个用于计算 n 中二进制位为0或1的公式,如果该公原创 2021-11-18 09:18:11 · 555 阅读 · 0 评论 -
009-NumberOf1InBinary-【c语言】
文章目录1、题目2、分析3、代码实现文章索引后记1、题目输入一个整数,输出该数二进制表示中1的个数。负数计算补码中1的个数(假设该机器是32bit的)2、分析【思路一】众所周知:1 & n(n表示任意整数)会得到 n 的最后一位二进制位(0或1)所以我们只需要控制 1 和 n 中的所有二进制位进行 & 运算就能知道对应位置上是 0 还是 1示例:100000000 00000000 00000000 00001101 是 十进制数 13 的原码、反码和补码令 n =原创 2021-11-18 08:54:42 · 531 阅读 · 0 评论 -
008-调整奇偶数位置-【c语言】
1. 题目实现一个函数,用来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。2. 分析如下图:3. 代码// nums 是一个数组的首地址,numsSize是数组 nums 的长度int* move(int* nums, int numsSize){ assert( nums ); if ( !numsSize) return nums; int* res = nums; int left = 0; int right = numsSi原创 2021-11-17 16:03:20 · 596 阅读 · 0 评论 -
007-模拟实现求字符串长度strlen【c语言】
文章目录1. 分析2. 具体实现文章索引后记1. 分析我们先了解一下strlen函数的作用,strlen函数会根据我们传递的字符数组首地址计算字符串的长度比如:// 代码1char str[] = "abcdef";strlen(str); // 6// 代码2char str[] = "abcd\0ef";strlen(str); // 4// 代码3char* str = "abcdef"; strlen(str); // 6// 代码4char str[] =原创 2021-11-17 15:21:55 · 585 阅读 · 0 评论 -
【数据结构】手写循环顺序队列【纯c语言版】
摘要:本章主要讲述循环顺序队列的实现文章目录1.队列的定义和特点2.队列的顺序结构2.1 普通队列2.2 循环队列3. 循环队列的代码实现3.1 队列的初始化3.1 队列增容3.2 队列的判空操作3.3 队列的判满操作3.4 入队操作3.5 出队操作3.6 清空队列3.7 销毁队列4. 源码链接(含测试代码)文章索引后记1.队列的定义和特点定义队列(Queue)是只允许在一端进行插入操作,而在另-端进行删除操作的线性表队列是一种先进先出(First In First Out)的线性表允许插原创 2021-11-16 20:31:39 · 337 阅读 · 0 评论 -
【数据结构】手写链栈【纯c语言版】
摘要:本章主要讲述链栈的实现文章目录1. 链栈的存储结构2. 链栈的入栈出栈图解3. 链栈的代码实现3.1 定义链栈的结构3.2 栈的初始化3.3 创建新结点3.4 判断栈是否为空3.5 入栈操作3.6 出栈操作3.7 读栈顶操作3.8 清空栈3.9 销毁栈3.10 感悟源码链接(含测试代码)文章索引后记1. 链栈的存储结构链栈的结构与链表相似插入与删除等操作都在链表的头部即:链栈是一个以top为头结点、从栈顶指向栈底的单链表2. 链栈的入栈出栈图解3. 链栈的代码实现3.1 定义原创 2021-11-16 12:05:18 · 591 阅读 · 0 评论 -
【数据结构】手写顺序栈【纯c语言版】
摘要:本章主要讲述栈的顺序存储的代码实现文章目录1. 顺序栈的定义和特点2. 入栈出栈时指针的变化3. 顺序栈的代码实现3.1 定义顺序栈的结构3.2 栈的初始化3.3 入栈操作3.4 出栈操作3.5 判断栈是否为空3.6 读栈顶元素3.7 清空栈源码链接(含测试代码)后记1. 顺序栈的定义和特点定义栈(stack)是限定仅在表尾插入和删除操作的线性表。允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)不含任何数据元素的栈称为空栈特点先进后出后进先出原创 2021-11-16 08:46:47 · 584 阅读 · 0 评论 -
007-模拟实现strcpy字符串拷贝函数-【c语言】
题目:模拟实现 strcpy 字符串复制函数strcpy 函数原型如下:char * strcpy ( char * destination, const char * source );将source指向的 C 字符串复制到destination指向的数组中,包括终止空字符(并在该点停止)。为避免溢出,destination指向的数组的大小应足够长以包含与source相同的 C 字符串(包括终止空字符),并且不应与source在内存中重叠。代码实现:char* my_strcpy(char原创 2021-11-13 18:17:26 · 605 阅读 · 0 评论 -
006-整型数组反转-【c语言】
题目:实现reverse()函数,完成对数组的逆序直接上代码:#include <stdio.h>void reverse(int* arr, int arrSize){ int left = 0; int right = arrSize - 1; while (left < right) { int tmp = arr[left]; arr[left] = arr[right]; arr[right] = tmp; left ++; right --原创 2021-11-13 11:48:43 · 505 阅读 · 0 评论 -
005-将三个数按照顺序打印-【c语言】
题目:将用户输入的三个数从大到小输出出来直接上代码:int main() { int a = 0; int b = 0; int c = 0; scanf("%d%d%d", &a, &b, &c); if (a < b) { // 保证了a 和 b之间,a是较大的 int temp = a; a = b; b = temp; } if (a < c) { // 保证了a 和 c之间,c是较大的 int temp = a; a原创 2021-11-13 11:33:35 · 239 阅读 · 0 评论 -
004-猜数字游戏-【c语言】
题目:写一个猜数字的游戏1.自动产生一个1~100之间的随机数2.猜数字 a.猜对了,恭喜你,游戏结束 b.猜错了,提示用户猜大了还是猜小了3.每个人最多猜10次因为代码很简单,也基本没什么逻辑可讲的,所以我就直接上代码吧!#include <stdio.h>#include <stdlib.h>// 猜数字游戏,数字范围 [1,100]// 每个用户用10次机会int main(void) { // 1.生成随机数 // rand 函数会生成原创 2021-11-13 11:29:18 · 2107 阅读 · 0 评论 -
003-字符串向中间移动-【编程题】
有两个等长的字符数组:char src[] = "hello world";char dest[] = "###########"现在有这样一个要求,需要我们实现以下打印效果:h#########dhe#######ldhel#####rldhell###orldhello#worldhello world可以看到,第一次打印将 dest 数组中的第一个和最后一个字符替换尾 src 中的,第二次打印又将 dest 数组中的第二个和倒数第二个元素替换为 src 中的,直到替换所有则结束。原创 2021-11-13 11:03:59 · 87 阅读 · 0 评论 -
002-删除有序数组中的重复项-【OJ练习】
文章目录1. 题目2. 题目描述3. 输入输出示例4. 解题思路4. 代码实现1. 题目 删除有序数组中的重复项(Remove Duplicates from Sorted Array) 链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/2. 题目描述给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长原创 2021-11-08 10:44:51 · 172 阅读 · 0 评论 -
001-移除元素-【OJ练习】
文章目录1. 题目名称2. 题目描述3. 输入输出示例4. 解题思路5. 代码实现1. 题目名称 移除元素(Remove Element) 链接:https://leetcode-cn.com/problems/remove-element2. 题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。原创 2021-11-08 09:38:33 · 91 阅读 · 0 评论 -
越界修改数组导致死循环问题
直接步入主题:请观察以下代码的输出结果是什么?// 代码1int main(){ int i = 0; int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; for (; i <= 9; i++) { arr[i] = 0; printf("hehe\n"); } return 0;} 大家不要把代码拷到运行环境上,大胆的猜测一下以上代码运行会出现什么情况? 对的,没错,原创 2021-11-07 19:59:28 · 184 阅读 · 0 评论 -
【数据结构】手写双链表【纯C语言版】
摘要:本章主要讲述循环双链表的实现文章目录本章导读1. 循环双链表的逻辑结构2. 循环双链表的代码实现2.1 定义循环双链表的存储结构2.2 创建结点2.2 初始化头结点2.3 计算链表长度2.4 尾插法2.5 尾删法2.6 打印链表本章导读 本章我并不会把代码的实现逻辑详细的描述出来,如果大家看了之前的文章或是自己写过单链表,那么你将会对本文中关于循环双链表的实现手到擒来;如果大家对其中的一些逻辑不够清楚可以自己画图理解,这里我只会画两个图出来作为示范,其他的大家可以自己画原创 2021-11-06 21:28:30 · 674 阅读 · 0 评论 -
【数据结构】手写单链表【纯C语言版】
摘要:本章主要讲述线性表的链式表示和用C语言实现单链表目录1. 链表1.1 什么是单链表1.2 单链表的逻辑图1.3 顺序表和单链表物理结构的对比2.单链表的代码实现2.1 定义单链表的存储结构2.2 单链表结点的空间开辟2.3 单链表查尾2.4 单链表尾插法2.5 打印链表2.6 单链表头插法2.7 单链表头删法2.8 单链表的查找2.9 单链表的修改2.10 单链表的插入2.11 单链表的删除2.12 计算链表长度2.13 销毁单链表3. 源码链接后记正文开始1. 链表1.1 什么是单链表原创 2021-10-30 15:28:15 · 421 阅读 · 0 评论 -
【数据结构】手写顺序表【纯C语言版】
摘要:本章主要讲述线性表,以及用C语言代码实现动态的顺序表1. 什么是线性表1.1 概念线性表(Linear list)是n个具有相同特性的数据元素的有限序列。线性表是一 种在实际中广 泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储1.2 线性表的特点我们知道,由n(n≥0)个数据特性相同的元素构成的有限序列称为线性表,所以线性表中原创 2021-10-30 09:46:04 · 304 阅读 · 0 评论 -
002循环编程题-难度★
1. 在不考虑数据溢出的情况下计算n的阶层难度:★#include <stdio.h>int main(){ int n = 0; int ret = 1; scanf("%d", &n); for(int i = 1; i <= n; i++) { ret *= i; } printf("ret = %d\n", ret); return 0;}2.计算 1! + 2!+…+10!难度:★★方法一:#include <原创 2021-10-10 07:58:46 · 227 阅读 · 0 评论 -
001编程题-难度-★[C语言]
1. 依次将10个整型数据输入,要求输出其中最大的数。考察对循环和判断语句的使用,以及scanf库函数和数组的基本使用难度:★☆☆☆☆如:输入10 32 12 54 65 2 67 12 43 90输出:90#include <stdio.h>int main(){ int arr[10] = { 0 }; for (int i = 0; i < 10; i++) { scanf("%d", &arr[i]); } int max =原创 2021-10-09 16:36:28 · 251 阅读 · 0 评论 -
[C语言]关于getchar和scanf函数的编程题
题目:运行程序,提示用户输入密码,用户输入密码后,提示用户确认密码,如果输入Y则确认成功,否则确认失败!示例:请输入密码:>123456请确认密码(Y/N):>Y确认成功!大家可以尝试先写一遍,这样会更好的加深印象。错误示例1:int main() { char password[20] = { 0 }; printf("请输入密码:>"); scanf("%s", password); int ch = getchar(); printf("请确认密码(原创 2021-09-24 22:01:50 · 241 阅读 · 0 评论 -
[C语言]static关键字详解
static:意为静态的,在C语言中用于修饰变量和函数,分别加做静态变量和静态函数。1.static修饰局部变量static修饰的局部变量称为静态局部变量,声明格式为: static 数据类型 变量名 [= 值]; //[ ]中的部分表示可选下面我们通过一段代码来看看有无static修饰的局部变量的区别://原创 2021-09-22 11:26:08 · 266 阅读 · 0 评论