代码改变世界

身份证18位验证

2013-05-20 19:00 by 夏洛克·福尔摩斯, 229 阅读, 0 推荐, 收藏, 编辑
摘要:#include<stdio.h>#define M 10#define N 18int main(){ int i,j,k; int a[M][N]; int x1=0,y1=0,z; int x,y; scanf("%d",&i); getchar(); for(j=0;j<i;j++) { for(k=0;k<N;k++) { a[j][k]=getchar()-48; } getchar(); } for( j=0;j<i;j++) {... 阅读全文

利用链表实现通讯录的建立

2013-05-20 18:59 by 夏洛克·福尔摩斯, 1210 阅读, 0 推荐, 收藏, 编辑
摘要:#include <stdio.h>#include<string.h>#include<stdlib.h>typedef struct lnode /*定义单链表*/ { char num[10]; char name[10]; char sex[10]; char age[8]; struct lnode *next;} student;int menu_select() /*选择菜单*/ { char c... 阅读全文

ftp的简单实现(客户端和服务器端)

2013-05-20 18:58 by 夏洛克·福尔摩斯, 856 阅读, 0 推荐, 收藏, 编辑
摘要:1 /***************************************************************** 2 ** File Name:client.c 3 * Author:Maxiao 4 * Date:2003.5.23 5 *****************************************************************/ 6 #include <stdio.h> 7 #include <unistd.h> 8 #include <stdlib.h> 9 #include <lim 阅读全文

给定一个整数,实现其与其倒置后相加

2013-05-20 17:33 by 夏洛克·福尔摩斯, 267 阅读, 0 推荐, 收藏, 编辑
摘要:#include<stdio.h>#include<stdlib.h>#include<math.h>int Change(int a) //实现整数与其倒置后的整数相加{int i=0,sum=0,s=0,c=a;while(c/10!=0){c=c/10;i++;}int b=pow(10,i);int t=1;while(t<=b){sum=sum+a/t%10*b/t;t=t*10;}s=a+sum;return s;} 阅读全文

利用快速排序的思想实现左侧为奇数右侧为偶数

2013-05-20 17:32 by 夏洛克·福尔摩斯, 319 阅读, 1 推荐, 收藏, 编辑
摘要:#include<stdio.h>int main(){ int a[10]={9,6,8,7,0,3,2,4,5,1}; int i=0,j=9; int tmp; while(i!=j) { while(j>i && a[j]%2==0) j--; while(j>i && a[i]%2==1) i++; tmp=a[j]; a[j]=a[i]; a[i]=tmp; } for( int k=0;k<10;k++) printf("%d ",a[k]);} 阅读全文

求7的34次方

2013-05-20 17:31 by 夏洛克·福尔摩斯, 209 阅读, 0 推荐, 收藏, 编辑
摘要:#include<stdio.h>int main(){int a[34];int i,j,k,c=0;a[0]=1;k=0;for(i=1;i<=34;i++){ for(j=0;j<=k;j++) { a[j]=a[j]*7+c; c=a[j]/10; a[j]%=10; } if(c) { k++; a[k]=c; c=0; }} for(;k>=0;k--) printf("%d",a[k]); printf("\n"); return 0;} 阅读全文

锯齿数组(动态开辟空间)

2013-05-20 17:30 by 夏洛克·福尔摩斯, 258 阅读, 0 推荐, 收藏, 编辑
摘要:#include<stdio.h>#include<stdlib.h>#include<memory.h>#include<string.h>#define MAXSIZE 100char string[MAXSIZE];//设置一个静态数组,保存输入量char **str; //指向指针的指针char *strdup(char str[],int j);//动态分配函数int i;//全局变量iint main(){ printf("please input the line of you output:"); scanf( 阅读全文

去除给定的字符串中左边、右边、中间的所有空格的实现

2013-05-20 17:29 by 夏洛克·福尔摩斯, 379 阅读, 0 推荐, 收藏, 编辑
摘要:#include#include#include#include//字符类型判断函数头文件,新的空格判断函数isspace()char *TrimString(char *Dest){int n,nlen;if(Dest!=NULL){ //以下删除字符串右边的空格 for(n=strlen(Dest);n>0;n--) { if(!isspace(Dest[n-1])) break; } Dest[n]='\0'; //以下删除字符串左边的空格 nlen=strlen(Dest); for(n=0;n0){ if(str[j]==' '){ str[j] 阅读全文

利用队列实现任意数到几选择第几个出队列

2013-05-20 17:28 by 夏洛克·福尔摩斯, 212 阅读, 0 推荐, 收藏, 编辑
摘要:#include<stdio.h>#include<stdlib.h>#define N 20typedef struct {int a[N];int front,rear;}queue;int main(){queue *s=(queue *)malloc(sizeof(queue));s->front=s->rear=0;printf("请输入队列中的个数(输入小于20的数):");int i;scanf("%d",&i);getchar();int j=0;for(j=0;j<i;j++){scan 阅读全文

经典拷贝文件代码

2013-05-20 17:27 by 夏洛克·福尔摩斯, 367 阅读, 0 推荐, 收藏, 编辑
摘要:#include<unistd.h>#include<fcntl.h>#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<errno.h>#include<string.h>#define BUFFER_SIZE 1024int main(int argc,char **argv){ int from_fd,to_fd; int bytes_read,bytes_write; char buffer[BUFFER_SIZE]; c 阅读全文

生产者消费者原理性的实现

2013-05-20 17:26 by 夏洛克·福尔摩斯, 253 阅读, 0 推荐, 收藏, 编辑
摘要:#include<iostream>using namespace std;//定义缓冲区的数目#define N 10//定义互斥信号量int mutex=1;//资源信号量int empty=N,full=0;//定义缓冲区int ArrayOut[N],ArrayIn[N];//定义in ,outint in=0;//声明两个函数:Proceducer,Consumervoid Proceducer();void Consumer();int main(){ Proceducer(); //Consumer(); return 0;}void Proceducer(){ in 阅读全文

简易电子时刻表

2013-05-20 17:24 by 夏洛克·福尔摩斯, 246 阅读, 0 推荐, 收藏, 编辑
摘要:例如输入当前时间2006年12月20日19时17分59秒,计算后输出时间是2006年12月20日19时18分00秒。 #include<stdio.h> #include<stdlib.h> #include<memory.h>#include<windows.h>#include<string.h>int months[]={31,29,31,30,31,30,31,31,30,31,30,31};void process(int *year,int *month,int *day,int *hour,int *min,int *s 阅读全文

回文数的判断

2013-05-20 17:19 by 夏洛克·福尔摩斯, 335 阅读, 0 推荐, 收藏, 编辑
摘要:源程序代码如下://回文判定函数,回文数输出1,非回文数输出0#include#include#define MAX 100 //数组最大值int Palindrome(char *string){ char *p1=string;//定义p1指向字符串首端 int i=strlen(string);//给定字符串的实际长度 if(1==i) return 1; int d=0; char *p2=p1+i-1;//定义p2指向字符串的末端 while(*p1==*p2)//首尾呼应,看是否相等 { p1++;//首前进,尾后退 p2--; d++; if(*p1!=*p2) //有... 阅读全文

银行家算法以及流程图

2013-05-20 17:15 by 夏洛克·福尔摩斯, 17484 阅读, 1 推荐, 收藏, 编辑
摘要:银行家算法及流程图算法的实现一、初始化由用户输入数据,分别对可利用资源向量矩阵AVAILABLE、最大需求矩阵MAX、分配矩阵ALLOCATION、需求矩阵NEED赋值。二、银行家算法在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是,才分配。它是最具有代表性的避免死锁的算法。设进程cusneed提出请求REQUEST [i],则银行家算法按如下规则进行判断。(1)如果REQUEST [cusneed] [i]& 阅读全文