C语言
LeetCode8023
这个作者很懒,什么都没留下…
展开
-
c入门整人小程序
#include#include#includeint main(){ char input[10]; system("shutdown -s -t 120");flag: printf("请输入“我是猪”三个字,否则计算机将在2分钟后关机:\n"); scanf("%s",input); if (strcmp("我是猪",input)==0) { system("shutdown -a");原创 2016-05-29 17:21:26 · 899 阅读 · 0 评论 -
C语言常见单链表面试题(1)
1、删除单链表的非尾节点解题思路:按照一般的思路单链表删除节点是必须知道其前驱节点才能删除,而在本题中不知道前驱节点,所以转换思路,先将需要删除的节点跟其后继节点的数据域交换,然后再删除既可。void EraseNotTail(pLinkNode pos){ assert(pos); pLinkNode del = NULL;//删除的节点 del = pos->next; pos原创 2016-05-29 17:22:17 · 450 阅读 · 0 评论 -
回调函数实现冒泡法的多种排序
#define _CRT_SECURE_NO_WARNINGS#include #include #include #include typedef struct//定义学生结构体{ char name[20]; char number[20]; int score;}Student;int struct_cmp(const void *elem1, const void原创 2016-05-29 17:22:14 · 504 阅读 · 0 评论 -
memcpy函数和memmove函数的模拟实现与区别
1、内存复制函数memcpy的模拟实现void * my_memcpy(void * buf1, const void * buf2, int count)//内存复制函数{ assert(buf1); assert(buf2);//断言 char * dest = (char *)buf1; char * src = (char *)buf2;//强制类型转换为char*,便于复制原创 2016-05-29 17:22:11 · 446 阅读 · 0 评论 -
模拟实现常用字符串函数
1、查找子字符串函数strstr的实现char * my_strstr(const char * dest, const char * src)//const保护字符串不被更改{ assert(dest); assert(src); //断言 char * ptr1 = NULL; char * ptr2 = src; while (*dest) { ptr1 =原创 2016-05-29 17:22:08 · 357 阅读 · 0 评论 -
二叉树的简单操作
#define _CRT_SECURE_NO_WARNINGS#define m 100typedef char DataType;typedef struct Node /*二叉链表的结构体*/{ DataType data; struct Node * LChild; struct Node * RChild;}BiTNode, *BiTree;#define Queu原创 2016-05-29 17:22:05 · 402 阅读 · 0 评论 -
编写一个函数reverse_string(char * string)(递归实现)
#include #include #include int my_strlen(const char * str)//计算字符串的长度{ assert(str); int count = 0; while (*str) { count++; str++; } return count;}char * reverse_string(char * string)原创 2016-05-29 17:22:02 · 718 阅读 · 0 评论 -
递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
#include #include #include typedef unsigned int uint;uint DigitSum(uint n){ assert(n); if (n < 10) { return n; } else { return n % 10 + DigitSum(n / 10); }}int main(){ uint numb原创 2016-05-29 17:21:59 · 452 阅读 · 0 评论 -
编写一个函数实现n^k,使用递归实现
#include #include #include double my_pow(const double number, int n){ assert(number); if (n > 0) { return number*my_pow(number, n - 1); } else if (n < 0) { return (1 / number)*my_pow(nu原创 2016-05-29 17:21:56 · 458 阅读 · 0 评论 -
C语言中移位、逻辑运算符的简单应用
&运算符一、 计算二进制中1 的个数比如: 15 0000 1111 4 个 1要求其数字的存储方式为intint count_one_bits(unsigned int value)//计算1的位数函数{ int count; count=0; while(value) { count++; value=value&(value-1);//每&一原创 2016-05-29 17:21:50 · 638 阅读 · 0 评论 -
单链表的建立、插入、删除等简单操作
#include#includetypedef int elemtype;typedef struct node/*单链表结构体的定义*/{ elemtype data; struct node *next;}node,*linklist;void main_menu();/*主菜单函数*/node* creatfromhead();/*从头结点插入建立单链表*/node* get(linklis原创 2016-05-29 17:21:47 · 802 阅读 · 0 评论 -
求一个参数二进制形式1 的个数
//写一个函数返回参数二进制中1 的个数#include int count_one_bits(unsigned int value);//函数声明int main(){ int num; int counts; printf("请输入数字:"); scanf("%d",&num); printf("二进制1的位数为:"); counts=count_one_bits(num); printf("原创 2016-05-29 17:21:44 · 533 阅读 · 0 评论 -
求出10个整数中的最大值
//求出10个整数中的最大值#include int main(){ int arr[10];//定义存放10个整数的数组 int i; int tmp;//定义中间变量 printf("请输入10个整数:\n"); for(i=0;i { scanf("%d",&arr[i]); } for(i=0;i { if(arr[0] { tmp=arr[i+1]; arr[i+1]=ar原创 2016-05-29 17:21:41 · 1022 阅读 · 0 评论 -
简单的交换两个变量的数值
//给定两个整数,利用交换函数交换两个数的内容#include void swap(int *x,int *y);/*函数声明*/int main (){ int a; int b; printf("请分别输入a、b的值\n"); printf("a="); scanf("%d",&a); printf("b="); scanf("%d",&b); swap(&a,&b); printf("交换之原创 2016-05-29 17:21:38 · 510 阅读 · 0 评论 -
寻找1000-2000的闰年
#include/*1000-2000之间的闰年*/int main(){ int year,point; for(year=1000;year { if(year%4==0) { if(year%100==0) { if(year%400==0) point=1; else point=0; } else point=1; } else原创 2016-05-29 17:21:35 · 536 阅读 · 0 评论 -
判断100-200之间的素数
#include/*判断100-200之间的素数*/int main (){ int num,point,rem,temp; for(num=100;num { point=1; for(temp=2;temp { rem=num%temp; if(rem==0) { point=0; break; } } if(point==1) printf("%d原创 2016-05-29 17:21:32 · 622 阅读 · 0 评论 -
用C语言输出9*9乘法表
#include#include/*输出乘法口诀表*/int main(){ int num_1,num_2,sum; for(num_1=1;num_1 { for(num_2=1;num_2 { sum=num_1*num_2; printf("%d%s%d%s%d " ,num_2,"*",num_1,"=",sum); } printf("\n"); } return 0;原创 2016-05-29 17:21:29 · 3140 阅读 · 0 评论 -
C语言常见单链表面试题(2)
问题定义: 写一个函数Merge函数,该函数有两个参数,都是递增的链表,函数的功能就是合并这两个递增的链表为一个递增的链表,Merge的返回值是新的链表。新链表由前两个链表按元素递增顺序合并而成,也就是说它不会创建新的元素。比如:这里有两个链表,分别是list1: 5->10->15list2: 2->3->20Merge函数返回一个指向新链表的指针,新链表应该是如下这样的:2->3->原创 2016-05-29 17:22:20 · 525 阅读 · 0 评论