C语言
⭐⭐❤
...
展开
-
三种交换方式
交换 a b:方法一: 利用中间变量int temp = a;a = b;b = temp;方法二 : 利用 加减运算; 两个数的和 — 一个数 = 另一个数a=a+b;b=a-b;a=a-b; //a=a-b;//b=a+b;//a=b-a;方法三 : 利用 按位异或(相同尾0,不同为1) 计算; 一个数与另一个数异或的结果 再与 自己异或 结果就是另一个数的值...原创 2019-12-23 15:54:52 · 348 阅读 · 0 评论 -
为什么github的绿色变成黄色了?
祝您万圣节快乐!Happy Halloween!因为10月31号是西方的万圣节,是西方的传统节日。所以github为了庆祝,也是将传统的绿色换成了黄色至深红,更加的欢庆!...原创 2019-10-31 23:23:55 · 749 阅读 · 0 评论 -
牛客网题目:给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素
题目:给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素以下属于自己调试总结,若有不同,乐意听从,借鉴int main(){ //牛客网,由于数组的定义时的下表不能为变量,所以牛客网中,若要求输入下表时,可用scanf输入, //也可直接在定义数组时,赋予初始常量值,系统会自动进行替换鉴别 但其它地方要...原创 2019-09-01 11:17:19 · 3010 阅读 · 0 评论 -
牛客网题目:输入参数为字符串型的n维数组,数组的每一项值为数组 或 int型数字。请实现一个函数,可以获取列表嵌套列表的最大深度为多少。
题目描述输入参数为字符串型的n维数组,数组的每一项值为数组 或 int型数字。请实现一个函数,可以获取列表嵌套列表的最大深度为多少。输入描述:输入参数为字符串型的 n维数组,列表的每一项值为数组 或 int型数字。数组内的数组,每一项值,也可以是数组 或 int型数字。输出描述:int型数字,表示数组嵌套的深度。示例1输入:[[1], [2,3,4], [5,[2,3]], [7],...原创 2019-09-02 22:03:47 · 311 阅读 · 0 评论 -
牛客网:两两配对值最小
题目描述给定一个长度为偶数的数组arr,将该数组中的数字两两配对并求和,在这些和中选出最大和最小值,请问该如何两两配对,才能让最大值和最小值的差值最小?**输入描述:**一共2行输入。第一行为一个整数n,2<=n<=10000, 第二行为n个数,组成目标数组,每个数大于等于2,小于等于100。**输出描述:**输出最小的差值。示例1输入 42 6 4 3输出 1示例2...原创 2019-09-03 12:16:13 · 989 阅读 · 1 评论 -
杨氏矩阵
题目:有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。时间复杂度小于O(N);数组:1 2 32 3 43 4 51 3 42 4 54 5 6(小于 向左)1 2 3(大于 向下)4 5 67 8 9思路:先从数组的第一行最后一个进行查找,如果刚好相等则返回1,如果要找的值大于这个元素,则在下一行的最后一...原创 2019-09-05 21:27:16 · 92 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面
题目:调整数组使奇数全部都位于偶数前面。输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。思路:循环从数组的两端同时判断,左边left所对应的值为奇数时,位置不变,left+1;右边right所对应的值为偶数时,位置不变,right-1;若不是,则就要进行交换,直到左值等于右值时,结束循环,而且相等时也不...原创 2019-09-05 21:45:20 · 177 阅读 · 0 评论 -
获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。先右移31位剩第一位,开始进行与1得到
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。先右移31位剩第一位,开始和1进行相与之后得到。程序:void fucn(int n){ int i; printf("偶数位:"); for (i = 31; i >= 1; i -= 2)//每次移动之前的两位 { printf("%d",(n>>i)&1); } printf("...原创 2019-09-06 23:16:38 · 153 阅读 · 0 评论 -
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。程序:int main(){ int i, flage=1; double sum = 0, temp=0; for (i = 1; i <= 100; i++) { temp=flage*1.0/i;//最先flage=1 sum = temp + sum; //i=1时是1 *...原创 2019-09-12 21:31:18 · 242 阅读 · 0 评论 -
将三个数按从大到小输出(冒泡法/基础法)
1.将三个数按从大到小输出(冒泡法)程序:#include <stdio.h>int main(){ int i, j, t; int a[3] = { 0 }; //输入数组 for (i = 0; i <= 2; i++) { scanf("%d", &a[i]); } for (j = 0; j < 2; j++) { for ...原创 2019-09-12 21:39:26 · 479 阅读 · 0 评论 -
递归和非递归分别实现求n的阶乘
程序:C语言程序://非递归求法int Fac1(int n){ int i,ret=1; for (i = 1; i <= n; i++) { ret =ret*i; } return ret;}//递归求法int Fac(int n){ if (n== 1) { return 1; } else { return n*Fac(n - 1);...原创 2019-09-15 17:50:51 · 136 阅读 · 0 评论 -
求水仙花数(C语言/Java)
求出0~999999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如:153=1 ^ 3+5 ^ 3+3 ^ 3 ? ,则153是一个“水仙花数”。C语言程序:int main(){ int i = 0; for (i = 0; i < 1000000; i++) { int count = 1; int tmp = i...原创 2019-09-15 17:57:41 · 160 阅读 · 0 评论 -
求斐波那契数列的第 N项(C语言/java)
求斐波那契数列1,1,2,3,5,8第n项 等于前两项的和,即 f(n) = f(n-1) + f(n - 2)Java程序:public class Test { public static void main(String[] args) { //5.1实现代码: 求斐波那契数列的第 N 项 int ret1 = fib1(40); ...原创 2019-09-19 14:28:11 · 729 阅读 · 0 评论 -
C语言显示菱形
C语言显示菱形:先打印一个三角形,再打印将其三角形,减掉最后一行进行反转打印程序:int main(){ int n; int i = 0,j=0; printf("请输入您需要的行数:");//三角形的行数 scanf("%d",&n); for (i = 1; i <= n; i++) { for (j = 1; j <= n - i; j++)//每...原创 2019-08-31 20:46:10 · 805 阅读 · 0 评论 -
C语言猜数字游戏
C语言猜数字游戏猜数字小游戏,随机生成一个数,用户去猜,若用户猜的大了 ,提示用户猜的太大了,若用户猜的小了,提示用户猜的太小了,若用户猜中了,恭喜您猜对了.程序:void game(){ int random_num = rand() % 100 + 1;//生成 [0,100)的随机数 int input = 0; while (1) { printf("请输入...原创 2019-08-31 20:39:45 · 558 阅读 · 0 评论 -
模拟实现strcpy
实现strcpy,字符串拷贝程序:char* Strcpy(char* dest, const char* src) { if (src == NULL || dest ==NULL) { //合法性校验,柔和的处理方式 return dest; } //assert(src != NULL || ...原创 2019-08-23 15:08:13 · 85 阅读 · 0 评论 -
strchr字符查找函数的实现
实现strchr :查找字符串中首次出现字符的位置,返回的是字符所在位置的地址,要想得到下表。可以用返回值 - 字符串首地址原型:char *strchr(const char *s,char c);功能:查找字符串s中首次出现字符c的位置。参数:const char *s//不能改变的字符串char c//字符返回值:成功则返回要查找字符第一次出现的位置,失败返回NULL。实...原创 2019-08-21 18:07:12 · 291 阅读 · 0 评论 -
一段程序的解析
#include<stdio.h>int main(){char* c[]={“ENTER”,“NEW”,“POINT”,“FIRST”};//指针数组char** cp[]={c+3,c+2,c+1,c};char*** cpp=cp;printf("%s\n",**++cpp);printf("%s\n",–++cpp+3);printf("%s\n",*cpp[-...原创 2019-08-20 21:54:20 · 262 阅读 · 0 评论 -
C语言——操作符笔记
操作符*1.算数操作符: + - * / %(求余,且两个操作数必须为整形,其他操作符可用于整数或浮点数)浮点数:打印到小数点后六位对于‘/’书上有记录程序可查看,2.移位操作符(二进制按位移):左移<< 右移>> 例如 a>>1 表示a 右移一位左移:左边抛弃,右边补零(相当于乘法,11的二进制左移移位=11...原创 2019-08-10 21:48:38 · 131 阅读 · 0 评论 -
不使用(a+b)/2这种方式,求两个数的平均值。
**解析:**假设两个数是 a, b 。将a和b相同的部分乘以2,加上a和b不同的地方,则为a和b的和,a和b相同的部分为(a&b),a和b不同的部分为(a异或),相同的部分乘以2可以用左移1位,即 “(a&b)>>1”表示,一个二进制左移n位表示乘以2的n次方,同理右移n位表示除以2的n次方。程序:int main(){int a = 2;int b = 3...原创 2019-08-11 18:29:18 · 107 阅读 · 0 评论 -
实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB
题目:1.实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB解析:写一个单独的交换函数,分别设置交换函数的中数组的左右值,交换k前的字符串,在交换k后的字符串,之后在总体交换例: k=2, 字符串:abcdef先让ab 交换得到bacdef 再让cdef交换得到bafedc, 再让bafedc ...原创 2019-08-12 17:26:53 · 242 阅读 · 0 评论 -
模拟实现strcat
模拟实现strcat :字符串的拼接char* strcat(char* dest, const char* src){if (dest == NULL || src == NULL)//合法性判断{return dest;}char* p = dest;while (*p != ‘\0’){++p;}//循环结束。p指向‘\0’//Strcpy(p,src);whi...原创 2019-08-23 15:07:27 · 102 阅读 · 0 评论 -
模拟实现strstr
实现strstr :发现字符串程序:const char* Strstr(const char* str1, const char* str2){ if (str1== NULL || str2 == NULL)//合法性校验 { return NULL; } if (*str2 == '\0') ...原创 2019-08-23 15:14:16 · 77 阅读 · 0 评论 -
模拟实现strchr
实现strchr(s,c):查找字符串s中首次出现字符c的位置程序:char* Strchr(const char* str1, int c){ if (str1 != NULL || c != 0)//合法性校验 { return NULL; } const char* p = str1; while (*p != '\0') { if (*p == c) {...原创 2019-08-23 15:17:25 · 67 阅读 · 0 评论 -
自定义类型部分知识
知识点:文章目录结构体类型创建结构体初始化结构体内存对齐位段,位段计算机大小。枚举+联合。原创 2019-08-26 16:05:25 · 119 阅读 · 0 评论 -
malloc,calloc,realloc,free函数用法总结
malloc,calloc,realloc,free函数用法总结头文件都是;#include<stdlib.h>动态内存:由于:1.静态内存创建的内存大小不太灵活,不能一次开辟连续空间大小(除过数组),无法在在运行时调整空间大小。2.内存申请和释放的时机也不太灵活所以 :就有了动态内存malloc:内存申请函数声明:void malloc(size_t size);//...原创 2019-08-27 16:18:12 · 269 阅读 · 0 评论 -
模拟实现memmove
实现memmove程序:void * Memmove(void *dest, const void *src, size_t num){ //合法性校验 if (dest == NULL || src == NULL || num == 0) { return dest; } //先区分当前缓冲区是否重叠 char* pdest = (char*)dest; char* p...原创 2019-08-23 16:58:24 · 109 阅读 · 0 评论