C算法经典代码
Moon_K_H
这个作者很懒,什么都没留下…
展开
-
指针实现冒泡排序
#includevoid order(int *p, int n){ int i,j,t; for(i=0;i<n-1;i++) for(j=0;j<n-j-1;j++) { if(*(p+j)>*(p+j+1)) { t=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=t; } printf("Order after of arr原创 2015-12-06 14:46:07 · 1052 阅读 · 0 评论 -
指向结构体变量的指针
#includestruct student{ int num; char name[20]; char sex; int age; float score;};int main(){ struct student student1={1000,"zhangsan",'Man',20,89.9}; struct student *p; p=&student1; pr原创 2015-11-26 18:50:08 · 423 阅读 · 0 评论 -
指针实现整数排序
#includevoid swap(int *p1, int *p2){ int temp; temp=*p1; *p1=*p2; *p2=temp;}void exchange(int *pt1, int *pt2, int *pt3){ if(*pt1<*pt2) { swap(pt1,pt2); } if(*pt1<*pt3) { swap(pt1,p原创 2015-11-26 18:49:27 · 663 阅读 · 0 评论 -
利用strlwr()任意大写字母转小写
#include#include#includeint main(){ char str[20]; printf("Please input string: "); gets(str); strlwr(str); printf(str); printf("\n"); return 0;}原创 2015-11-20 17:26:51 · 937 阅读 · 0 评论 -
利用biostime()读取并设置BIOS的时钟
#include#includeint main(){ long origin,new; origin=biostime(0,0); printf("\nthe current time is %ld\n",origin); new=biostime(1,500); printf("The new time is %ld",new); return 0;}原创 2015-11-20 17:31:07 · 2102 阅读 · 0 评论 -
获取BIOS常规内存容量
#include#includeint main(){ int memsize; memsize=biosmemory(); printf("\nBIOS regular memory size is %dKB",memsize); return 0;}原创 2015-11-26 18:48:33 · 919 阅读 · 0 评论 -
获取当前日期与时间
#include#includeint main(){ time_t now; time(&now); printf("\n Now is:%s",ctime(&now)); return 0; }原创 2015-11-22 13:48:40 · 488 阅读 · 0 评论 -
显示程序运行时间
#include#includeint main(){ time_t start,end; start=time(NULL); sleep(10); end=time(NULL); printf("%f\n",difftime(end,start)); return 0;}原创 2015-11-22 09:30:16 · 483 阅读 · 0 评论 -
求最大公约数和最小公倍数
#includeint GCD(int m, int n){ int k,j; if(n>m) { k=n; n=m; m=k; } while((j=m%n)!=0) { m=n; n=j; } return (n);}int LCM(int m, int n, int A){ return (m*n/A);}int main(){原创 2015-11-17 14:27:40 · 328 阅读 · 0 评论 -
求直角三角形的斜边
#include#includeint main(){ int a,b; int sum; printf("Please input two integer numbers: "); scanf("%d%d",&a,&b); sum=hypot(a,b); printf("%d\n",sum); return 0;}原创 2015-11-17 14:26:36 · 1965 阅读 · 0 评论 -
使用指针输出数组元素
#includeint main(){ int a[10]; int *p,i; printf("\nPlease input ten integer:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } printf("\n"); for(p=&a;p<(a+10);p++) { printf("%d",*p); } p原创 2015-11-26 18:50:51 · 1185 阅读 · 0 评论 -
使用指针的指针输出字符串
#includeint main(){ char *strings[]={"A","B","C","D","E"}; char **p,i; p=strings; for(i=0;i<5;i++) { printf("%s\n",*(p+i)); } return 0;}原创 2015-11-27 22:11:32 · 990 阅读 · 0 评论 -
指针遍历数组
#includefloat *search(float(*p)[4]){ int i; float *pt; pt=*(p+1); for(i=0;i<4;i++) { if(*(*p+i)<60) { pt=*p; } } return (pt); }int main(){ float score[][4]={{60,75,82,91},{75,8原创 2015-12-06 14:41:32 · 783 阅读 · 0 评论 -
用指针函数输出学生成绩
#includefloat *search(float(*p)[4],int n){ float *pt; pt=*(p+n); return (pt);}int main(){ float score[][4]={{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7}}; float *p; int k,i; printf("enter the原创 2015-11-30 20:58:10 · 2797 阅读 · 0 评论 -
寻找相同元素的指针
#includevoid *find(int *pa, int *pb, int an, int bn){ int *paa, *pbb; paa=pa; pbb=pb; while(paa<pa+an&&pbb<pb+bn) { if(*paa<*pbb) { paa++; } else if(*paa>*pbb) { pbb++; } e原创 2015-11-30 20:57:12 · 425 阅读 · 0 评论 -
使用指针查找数列中的最大值和最小值
#includeint max_min(int a[],int n , int *max, int *min){ int *p; *max= *min= *a; for(p=a+1;p if(*p>*max) *max=*p; else if(*p *min=*p; return 0;}in原创 2015-11-27 22:10:36 · 7796 阅读 · 2 评论 -
用指针实现逆序列存放数组元素值
#includeint main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=a+9; int i=0; for(i=0;i<10;i++) { printf("%d,",*p); p--; } printf("\n"); return 0;}原创 2015-11-28 15:26:20 · 1882 阅读 · 0 评论 -
指针交换两数组最大值
#include#define N 5int *max(int *k, int n){ int *k1, *k2; k2=k; for(k1=k+1;k1<k+n;k1++) { if(*k1>*k2) { k2=k1; } } return k2;}void swap(int *pa, int *pb){ int temp; temp=*pa原创 2015-12-15 15:35:54 · 905 阅读 · 0 评论 -
使用指针插入元素
#include#define N 10void sort(int *q, int w, int e){ int *p, *o; for(p=q;p<q+w;p++) { if(*p>e) { o=p; break; } } for(p=q+w;p>=o;p--) *p=*(p-1); *o=e;}int main(){ int i; in原创 2015-12-15 15:34:48 · 927 阅读 · 0 评论 -
使用指向指针的指针对字符串排序
#include#includevoid sort(char *strings[], int n){ char *temp; int i,j; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(strcmp(strings[i],strings[j])>0) { temp=strings[i]; strings原创 2015-11-27 22:13:01 · 749 阅读 · 0 评论 -
用指针数组构造字符串数组
#includeint main(){ char *week[]={"Monday","Tuesday","Wednesday","Thursday","Friday" ,"Saturday","Sunday"}; int i; printf("Please enter a number for week:\n"); scanf("%d",&i); printf("The week原创 2015-11-28 15:25:24 · 441 阅读 · 0 评论 -
求相对的最小整数
#include#includeint main(){ int a; float Interger; printf("Please input a numbers: "); scanf("%d",&a); Interger=ceil(a); printf("The result is :\n%f\n",Interger); return 0;}#include#incl原创 2015-11-17 14:25:30 · 373 阅读 · 0 评论 -
显示当前日期和时间
#includeint main(){ struct date d; struct time t; getdate(&d); gettime(&t); printf("%d%d%d\n",d.da_year,d.da_mon,d.da.day); printf("%d%d%d",t.ti_hour,ti_min,ti_sec); return 0;}原创 2015-11-22 09:29:18 · 323 阅读 · 0 评论 -
字母检测
#include#includeint main(){ char ch, ch1; while(1) { printf("input the character('q' to quit):"); ch=getchar(); ch1=getchar(); if(ch=='q'||ch=='Q') break; if(isalpha(ch))原创 2015-11-22 13:44:10 · 522 阅读 · 0 评论 -
判断年龄大小(函数递归)
主要是实现函数的递归调用,第一种方法不太好。#includeint Age(int j){ int k; int yeas=10; for(k=1;k<j;k++) { yeas+=2; } return (yeas);}int main(){ int j,y; printf("Do you want to know whose age? Pl原创 2015-11-10 16:36:10 · 873 阅读 · 0 评论 -
判断素数(函数)
#includevoid Snum(int x){ int y; y=x; if((y%2==0)||(y%1==0)) { printf("This is not a prime"); } else { printf("%d is a prime ",y); }}int main(){ int x; printf("Please input an inte原创 2015-11-10 16:33:36 · 542 阅读 · 0 评论 -
输出两个数中的最大值(函数)
#includevoid MaxNum(int a, int b){ if(a==b) printf("Please input again!"); else if(a>b) printf("%d",a); else printf(原创 2015-11-10 16:19:32 · 2739 阅读 · 0 评论 -
求100-200之间的素数
#include#includevoid main(){ int i,j,n=0; for(i=100;i for(j=2;j if(i%j==0) break; else if(j>sqrt(i)-1)原创 2015-07-22 21:51:26 · 372 阅读 · 0 评论 -
十进制转换为二进制
#include#includeviud main(){ int i,h,n,m; int a[16]={0}; system("cls"); scanf("%d",&n); for(m=0;m { i=n%2; j=n/2; n=j; a[m]=i;原创 2015-07-22 21:49:58 · 535 阅读 · 0 评论 -
n进制转换为十进制
#include#includevoid main(){ long t1; int i,n,t,t3; char a[100]; gets(a); strupr(a); t3=strlen(a); t1=0; scanf("%d",&n); for(i=0;i { if原创 2015-07-22 21:52:38 · 716 阅读 · 0 评论 -
求各位数之和为5的数
#includevoid main(){ int i,s,k,count=-1; for(i=100;i { s=0; k=i; while(k) { s=s+k%10; k=k/10; } if(s!原创 2015-08-12 22:25:49 · 1000 阅读 · 1 评论 -
小球落下问题
一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? 1 #include 2 void main() 3 { 4 float i,m=100,sum=100; 5 for(i=0;i 6 { 7 m=m/2;原创 2015-07-18 23:50:30 · 536 阅读 · 0 评论 -
关于素数(持续更新)
所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除。因此判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数 另外判断方法还可以简化。m不必呗2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了。如果m不能被2~√m间任一整数整除,m必定是素数。例如判别1原创 2015-07-13 17:28:29 · 360 阅读 · 0 评论 -
整数跟小数的分离
#include#includeint main(){ double integer,decimal; float number; printf("Please input the number: "); while(scanf("%f",&number)) { decimal=modf(number,&integer); printf("integer:%f原创 2015-11-12 15:32:07 · 950 阅读 · 0 评论 -
求任意数的幂
#include#includeint main(){ float base,exp; int i; printf("Please input the base:\n "); scanf("%f",&base); printf("Please input the power:\n "); scanf("%f",&exp); for(i=0;i<5;i++) { pr原创 2015-11-12 15:33:55 · 334 阅读 · 0 评论 -
设置DOS系统时间
#include#includeint main(){ struct time sett,now; struct time origint; gettime(&origint); printf("original time is:%d:%d:%d\n",origint.ti_hour, origint.ti_min, origint.ti_sec); sett.ti_原创 2015-11-20 17:34:52 · 899 阅读 · 0 评论 -
查找文件位置
从键盘中输入str1和str2,查找str1字符串中第一个不属于str2字符串中字符的位置,并将该位置输出;再从键盘中输入str3和str4,查找在str3中是否包含str4,无论包含与否给出提示信息。#include#includeint main(){ char str1[30], str2[30], str3[30], str4[40], *p; int pos; prin原创 2015-11-20 17:24:16 · 353 阅读 · 0 评论 -
复制当前目录
将当前目录复制到数组cdir中并在屏幕上输出:#include#includeint main(){ char *filename="mingriXXXXXX", *p; p=mktemp(filename); printf("%s\n",p); return 0; }原创 2015-11-20 17:20:20 · 336 阅读 · 0 评论 -
产生唯一文件
在目录中产生一个唯一的文件:#include#includeint main(){ char *filename="YYYYY", *p; p=mktemp(filename); printf("%s\n",p); return 0;}原创 2015-11-20 17:18:52 · 455 阅读 · 0 评论 -
字符串复制到指定空间
从键盘中输入字符串1和字符串2,将字符串内容保存到内存空间中。#include#includeint main(){ char str1[30], str2[30]; char *p1, *p2; printf("Please input string1: "); gets(str1); printf("Please input string2: "); gets(str2)原创 2015-11-20 17:25:33 · 393 阅读 · 0 评论