
C语言
liyf__
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
打印2~n的具体素数值
#if 0#include<stdio.h>#include<algorithm>#include<math.h>/*算法-----打印2-n的具体素数值 判断j是否为素数从2-(int)(sqrt(k))遍历*/int JudgePrime(int a){int j;for(j = 2;j<(int)sqrt(double(a));j++){if(a%j == 0)原创 2017-05-19 18:43:06 · 556 阅读 · 0 评论 -
螺旋矩阵-由内向外旋转
/*算法-螺旋矩阵--由内向外旋转 21 22 23 24 25 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13 注:设1点的坐标是(0,0),x方向向右为正,y方向向下为正,例如 2点的坐标为(0,1),编程实现输入任意一点坐标(x,y),输出所对应的原创 2017-05-20 16:17:34 · 2542 阅读 · 0 评论 -
单循环链表的创建、插入删除等操作
//..... SClist.h#ifndef _SCLIST_H_#define _SCLIST_H#include<stdio.h>#include<malloc.h>#include<assert.h>#include<stdlib.h>#define ElemType inttypedef struct Node{ElemType data;struct Node原创 2017-05-20 17:20:04 · 717 阅读 · 0 评论 -
单链表的创建、插入删除等操作
//.... utili.h#ifndef UTILI_H#define UTILI_H#include<iostream>using namespace std;#include<assert.h>#define bool int#define true 1#define false 0#endif//..... list.h#ifndef LIST-H#defi原创 2017-05-20 17:22:37 · 335 阅读 · 0 评论 -
输入一个日期,输出这个日期是所在年的第几天
#if 0#include<stdio.h>//输入一个日期,判断这个日期是所在年的第几天int findDate(int year,int mouth,int day){bool IsleapYear = false;int days = day;int leapYear[12] = {31,30,31,30,31,30,31,31,30,31,30,31}; //闰年12个月的天数原创 2017-05-20 17:25:15 · 4719 阅读 · 0 评论 -
输入一个数num,编程输出有几对质数的和等于num,
//输入一个数num,编程输出有几对质数的和等于num,#include <stdio.h>int isPrime(int n) //判断是否为质数{ int i; if(n<2) return 0; for(i=2;i<n;i++) { if(n%i == 0) return 0; }return 1;}原创 2017-05-20 17:42:27 · 496 阅读 · 0 评论 -
进程通信方式--共享内存(shm)--实现自由通信
//欢迎大家评论提出意见#include"utili.h"#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/sem.h>#include<sys/types.h>#include<sys/shm.h>#include<sys/ipc.h>#include<string.h>#include<sys/原创 2017-05-21 12:10:41 · 1176 阅读 · 0 评论 -
进程间通信--消息队列(msg)--实现自由通信
//msg(消息队列)--是将消息按队列的方式组织成的链表#include"utili.h"#include<stdio.h>#include<unistd.h>#include<sys/ipc.h>#include<sys/shm.h>#include<sys/sem.h>#include<sys/msg.h>#include<string.h>#include<stdlib.h原创 2017-05-21 12:14:55 · 1206 阅读 · 0 评论 -
通信方式--信号量的一系列操作(创建 获取 设置 删除以及PV操作)
//....................#include"utili.h"#include<stdio.h>#include<unistd.h>#include<sys/ipc.h>#include<sys/sem.h>#include<stdlib.h>//.....................sem_create mysem.c#include"utili.h"int ma原创 2017-05-21 12:17:54 · 904 阅读 · 0 评论 -
通信方式--信号量的操作
#include<stdio.h>#include<unistd.h>#include<sys/sem.h>#include<sys/types.h>#include<sys/ipc.h>#include<stdlib.h>union semun //man semctl{ int val; /* Value for SETVAL */原创 2017-05-21 12:20:19 · 211 阅读 · 0 评论 -
通信方式-有名管道的创建和读写
#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<fcntl.h>#include<string.h>#if 1//创建两个FIFO实现不同进程间的全双工通信 --实现自由通信//有名管道的创建及读写extern int errno;//..............ser.c --服务端int main(){原创 2017-05-21 17:31:33 · 782 阅读 · 0 评论 -
通信方式--管道(父子进程通信)
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>/*进程间通信(IPC机制) 通信方式有: 管道 有名管道 消息队列 信号量 共享内存 套接字 管道:是一种半双工的通信方式 只能在具有亲缘关系的进程间使用 有名管道:也是半双工的通信方式,但是它允许无亲缘关系进程间的通信*/#if原创 2017-05-21 17:33:32 · 983 阅读 · 0 评论 -
进程间通信--管道(半双工)
..........................................pipe.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#if 0//对于命名管道的操作与文件操作非常相似,对文件操作中使用的函数read(),write(),close()//等函数都可以是用来对管道进行原创 2017-05-21 17:35:19 · 384 阅读 · 0 评论 -
算法--分而治之法
//.5.利用分而治之算法求一个整数数组中的最大值#if 0int Max(int a[],int n){int max1; if(n==1)return a[0];else{max1=Max(a,n-1);if(max1>a[n-1])return max1;elsereturn a[n-1];}}void main(){int a[]={6,10,8,1原创 2017-05-21 17:41:51 · 1068 阅读 · 0 评论 -
算法--二分法查找数字
//.4.二分法查找数字#if 0int Find(int a[],int low,int high,int key) //查找函数{if(low>high) return -1;int mid=(low+high)/2;if(a[mid]==key)return mid;else if(key<a[mid])return Find(a,low,mid-1,key);原创 2017-05-21 17:43:08 · 817 阅读 · 0 评论 -
文件操作函数
//..............文件操作.....#if 0#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<stdio.h>#include<string.h>//linux系统调用实现对文件的操作//.........read() write()in原创 2017-08-02 08:43:26 · 333 阅读 · 0 评论 -
约瑟夫环问题
/*面试例题:已知n个人(以编号1,2,3,...n分别表示)围坐在一张圆桌周围,从编号为k的人开始报数,数到m的那个人出列, 他的下一个人又从K开始报数,数到m的那个人出列;依此规律重复下去,知道圆桌周围的人全部出列。解析:约瑟夫环的问题----要通过输入n,m,k 3个正整数,求出列的序列,采用的是典型的循环链表的数据结构,就是将一个链表的尾元素指针指向队首元素。核心原创 2017-05-19 17:37:23 · 388 阅读 · 0 评论 -
统计每个ASCII字符出现的次数
```#if 0#include<iostream>#include<cstdlib>using namespace std;/*统计每个ASCII字符出现的次数,其中每个ASCII字符对应唯一一个整数值*/void histogram(char* src){int i;char hist[256];for(i = 0;i<256;i++){hist[i] = 0;}原创 2017-05-19 18:41:14 · 1291 阅读 · 0 评论 -
排序算法--对公司员工年龄的排序
/*.................................//排序算法--对公司员工的年龄排序,要求时间效率O(n)解题思路: 公司员工的年龄有一个范围 这里规定0~99 用长度100的整数数组作为辅助空间换来了O(n)的时间效率。*/#include<stdio.h>#define N 10void SortAges(int ages[],int length)原创 2017-05-19 16:37:42 · 3849 阅读 · 0 评论 -
位运算--与,或,异或,左移,右移
位运算: 是把数字用二进制表示之后,对每一位上0或者1的运算。关于位运算的5种运算方式: 与,或,异或,左移,右移。 与,或,异或的运算规律与(&) 0&0 = 0 1&0 = 0 0&1 = 0 1&1 = 1或(|) 0|0 = 0 1|0 = 1 0|1原创 2017-05-16 15:03:11 · 678 阅读 · 0 评论 -
高级IO函数--dup函数
//.................ser.cpp#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<assert.h>#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<errno.h>#include<stri原创 2017-05-18 10:43:53 · 377 阅读 · 0 评论 -
斐波那契数列——递归实现
#if 0/*斐波那契数列: 题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项,斐波那契数列的定义如下: f(n) = 0 n = 0 =1 n = 1 =f(n-1)+f(n-2) n>1递归实现的时间复杂度是以n的指数的方式递增的。*/long long F原创 2017-05-19 16:16:27 · 741 阅读 · 0 评论 -
求一个数二进制中1的个数
/*面试题10: 二进制中1的个数题目:请实现一个函数,输入一个整数,输出该二进制表示中1的个数。 例如把9表示成二进制是1001,有两位是1,因此如果输入9,该函数输出2.*/#if 0#include<stdio.h>/*法一: 1.先判断整数二进制表示中最右边一位是不是1,接着右移一位,此时原来处于从右边数起的第二位被移到最右边了,再判断是不是1, 这样每原创 2017-05-19 16:21:43 · 507 阅读 · 0 评论 -
找出旋转数组中的最小数字
*面试题8: 旋转数组的最小数字题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如:数组{3,4,5,1,2}位{1,2,3,4,5}得一个旋转,该数组的最小值为1.*/#if 0#include<stdio.h>#define N 8int MinInOrder(int* numbers原创 2017-05-19 16:24:15 · 409 阅读 · 0 评论 -
交换两个数的三种方法
#if 0 /* .....交换两个数的值: 方法1:通过临时变量交换 方法2:通过加减交换 方法3:通过异或来进行交换 */#include<stdio.h>//.....借用临时变量交换int main(){int a,b;int t = 0;printf("请输入两个数的值:a和b:");scanf("%d%d",&a原创 2017-05-19 16:26:35 · 626 阅读 · 0 评论 -
斐波那契数列——循环实现
#if 0/*斐波那契数列: 题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项,斐波那契数列的定义如下: f(n) = 0 n = 0 1 n = 1f(n-1)+f(n-2) n>1递归实现的时间复杂度是以n的指数的方式递增的。*/#include<stdio.h>long long F原创 2017-05-19 16:28:43 · 1382 阅读 · 0 评论 -
二维数组中某一元素的查找
/*面试例题3:二维数组中某一元素的查找 :在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:首先选取数组中右上角的数字,如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数字,剔除这个数字所在的列;如果该数字小于要查找的数字,剔除这个数原创 2017-05-19 16:32:34 · 2381 阅读 · 1 评论 -
替换空格
/*面试例题4:替换空格 请实现一个函数,把字符串中的每个空格替换成“%20”。 例如输入“We are happy",则输出”We%20are%20happy"。转换的规则是在‘%’后面跟上ASCII码的两位十六进制的表示,比如空格的ASCII码是32,即16进制的0x20,因此空格被替换成“%20”,再比如‘#’的ASCII码为35,即十六进制原创 2017-05-19 16:30:57 · 355 阅读 · 0 评论