c语言
程序员s1mple
这个作者很懒,什么都没留下…
展开
-
链表的会回文结构。
题目描述对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true代码struct ListNode*reverseList(struct ListNode*head){ struct ListNode*cur =head; struct ListNode*newhead =N原创 2021-02-02 11:04:56 · 178 阅读 · 1 评论 -
链表分割。 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针
题目描述现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。解题思路代码 ListNode* partition(ListNode* pHead, int x) { struct ListNode* lesshead,*lesstail,*greaterhead,*greatertail; lesshead=lesstail=(struct L原创 2021-02-02 10:19:31 · 390 阅读 · 0 评论 -
字符查找函数strstr,strtok,错误信息函数strerror
目录strstr函数描述声明参数返回值使用模拟实现strtok函数描述声明返回值使用strerrorstrstr函数描述C 库函数 char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 ‘\0’。声明char *strstr(const char *haystack, const char *needle)参数haystack – 要被检索的 C 字原创 2021-01-19 15:38:37 · 238 阅读 · 0 评论 -
求第n个斐波那契数。(不考虑溢出)
求第n个斐波那契数。(不考虑溢出)较为粗暴的解法//斐波那契数列1 1 2 3 5 8 13 21:前两个数之和等于第三个数#include <stdio.h>int Fib(int n){ if (n <= 2) return 1; else return Fib(n - 1)+Fib(n - 2);}int main(){ int n = 0; int ret = 0; scanf("%d", &n); ret = Fib(n)原创 2021-01-19 10:09:53 · 187 阅读 · 2 评论 -
写一个函数交换两个整型变量的内容,写一个函数找出两个整数中的最大值,判断一个数是不是素数,判断闰年
//#include <stdio.h> //写一个函数交换两个整型变量的内容//void swap(int* p1, int* p2)//{// int tmp = *p1;// *p1 = *p2;// *p2 = tmp;//}//int main()//{// int a = 1;// int b = 3;// swap(&a, &b);// printf("%d%d", a, b);// // return 0;////}//#i原创 2021-01-19 10:08:18 · 157 阅读 · 1 评论 -
C语言:字符串函数,strlen函数,strcpy函数,strcat函数,strcmp函数,strncpy函数,strncat函数,strncmp函数
前言求字符串长度strlen长度不受限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数strncpystrncatstrncmp字符串函数查找strstrstrtok错误信息报告strerror字符操作内存操作函数memcpymemmovememsetmemcmp前言C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在 常量字符串 中或者 字符数组 中。 字符串常量 适用于那些对它不做修改的字符串函数.前言求字符串长度strlen长度不受限制原创 2021-01-19 10:02:21 · 203 阅读 · 0 评论 -
C语言:输出9*9乘法口诀表
思路:利用俩层循环。遇到问题:第一遍无法换行输出,在第一层循环里添加换行语句,得到正确输出格式。#include <stdio.h>int main(){ int i = 0; for (i = 1; i <=9; i++) { int j = 0; for (j = 1; j <= i; j++) { printf("%d*%d=%2d ", i, j, i*j); //%2d表示固定输出两位,就是为了处输出结果美观 } printf("原创 2020-12-29 18:30:39 · 1107 阅读 · 0 评论 -
C语言:猜数字游戏
//猜数字游戏//1.电脑会生成一个随机数//2.猜数字#include <stdlib.h>#include <time.h>//RAND_MAX//0-32767void game(){ //1.生成一个随机数。 int ret = 0; int guess = 0;//接受猜数字 ret = rand()%100+1;//生成1-100之间随机数 //printf("%d\n", ret); //2.猜数字 while (1) { print原创 2020-12-29 18:17:21 · 701 阅读 · 0 评论 -
C语言:数组
数组一维数组的创建和初始化数组的创建数组是一组相同类型元素的集合。数组创建的方式:type_t arr_name[const_n];//type_t 是指数组的元素类型//const_n 是一个常量表达式用来指定数组的大小#include <stdio.h>int main(){ //创建一个数组-存放整型-10个 int arr[10]; //数组创建实例 注意:数组创建[]中要给一个常量,不能是变量。 char arr2[5]; float arr3[10];原创 2020-12-28 21:07:00 · 210 阅读 · 0 评论 -
C语言:求一个整数存储在二进制的个数
#include <stdio.h>int CountBit(int x){ int count = 0; int i; for (i = 0; i < 32; ++i) { if (x & 1) { count++; } x >>= 1; } return count;}int main(){ printf("%d\n", CountBit(3)); return 0;}原创 2020-12-23 20:51:53 · 118 阅读 · 0 评论 -
C语言:函数递归
函数递归文章目录函数递归什么是递归递归的两个必要条件练习一:接受一个整型值(无符号)按顺序打印他们的每一位。练习二:编写函数不允许创建临时变量,求字符串的长度。递归与迭代练习三:求n的阶乘。(不考虑溢出)练习四:求第n个斐波那契数。(不考虑溢出)什么是递归程序调用自身的编程技巧称为递归( recursion)。 递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策原创 2020-12-23 20:21:23 · 1254 阅读 · 2 评论 -
C语言:判断一个数是否为奇数 输出1-100之间的奇数
#include <stdio.h>int main(){ int a = 0; scanf("%d", &a); //if (a % 2 == 1) if (a % 2 !=0) { printf("奇数\n"); } else { printf("偶数\n"); } return 0;}#include <stdio.h>int main(){ int a = 0; for (a = 0; a <= 100; ++a)原创 2020-12-10 15:28:00 · 2075 阅读 · 1 评论 -
移位操作符
移位操作符移位操作符左移操作符 <<右移操作符 >>左移和右移针对二进制位进行移位。左移操作符移位规则:左边抛弃、右边补0。eg:1<<1=200000000 00000000 00000000 00000001 1左移一位00000000 00000000 00000000 00000010 2-1<<1=211111111 11111111 11111111 11111111 -1左移一位11111111 1原创 2020-12-10 11:46:03 · 118 阅读 · 0 评论 -
位操作符
位操作符有:& //按位与 0&0=0 1&1=1 1&0=0 0&1=0| //按位或 0|0=0 0|1=1 1|0=1 1|1=1^ //按位异或 相同为0 相异位1注:他们的操作数必须是整数#include <stdio.h>int main(){ int num1 = 1;//00000000 00000000 00000000 00000001 int num2 = 2;//000000原创 2020-12-10 11:44:38 · 197 阅读 · 0 评论 -
整型存储
原码:整数转成二进制。-1的源码:10000000 00000000 00000000 00000001反码:在原码的基础上符号位不变,其他位取反。有符号数,最高位就是符号位,1表示负数,0表示正数。-1的反码:11111111 11111111 11111111 11111110(最左边的1为符号位)补码:反码加一就是补码。因为正数的补码=反码=原码,所以正数和负数在计算机中储存的是补码。-1的补码:11111111 11111111 11111111 11111111为什么负数在计算机中原创 2020-12-10 09:36:58 · 92 阅读 · 0 评论