随笔分类 -  c

摘要:数据统计(重定向版) 1 #define LOCAL 2 #include 3 #define INF 1000000 4 int main() 5 { 6 #ifdef LOCAL 7 freopen("data.in","r",stdin); 8 freopen("data.out","w",stdout); 9 #endif10 int x,n=0,min=INF,max=-INF,s=0;11 while(scanf("%d",&x)==1)12 {13 s+=x;14 if(x 阅读全文
posted @ 2012-09-05 21:29 blue—— 阅读(329) 评论(0) 推荐(1)
摘要:可以使用time.h和clock()函数获取程序运行时间,将次句添加到程序尾即可printf("time used = %.2lf\n",(double)clock() / CLOCKS_PER_SEC); 阅读全文
posted @ 2012-09-05 20:57 blue—— 阅读(274) 评论(0) 推荐(0)
摘要:floor函数:其功能是“下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分)在#include <math.h>头文件下。floor(x+0.5)即将下取整改为四舍五入形式。有趣的是,floor在英文中是地板的意思,而ceil是天花板的意思,很形象地描述了下取整和上取整的数学运算。说明:如果任一参数为非数值参数,则 FLOOR 将返回错误值 #VALUE!。如果 number 和 significance 符号相反,则函数 FLOOR 将返回错误值 #NUM!。不论 number 的正负号如何,舍入时参数的绝对值都将减小。如果 nu 阅读全文
posted @ 2012-09-05 20:39 blue—— 阅读(4393) 评论(0) 推荐(0)
摘要:问题描述:逆波兰表达式是一种吧运算符前置的算术表达式,例如普通的表达式2+3的逆波兰表示为+23.逆波兰表达式的优点是运算符之间不必有优先级的关系,也不必有括号改变运算次序,例如(2+3)*4的逆波兰表示法为*+2 3 4.本题求解的逆波兰表达式的值。输入数据:输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。输出要求:输出为一行,即表达式的值。输入样例:* + 11.0 12.0 +24.0 35.0+输出样例:1357.000000解题思路:这个问题看上去有些复杂,如果只是简单地模拟计算步骤不太容易想清楚,但是如果用递归的思想就非常容易想清楚。这里根据逆波兰表达式的定义进行递 阅读全文
posted @ 2012-08-17 22:38 blue—— 阅读(3251) 评论(1) 推荐(0)
摘要:1 #include<stdio.h> 2 int main() 3 { 4 int i,a[50]={0},n,*p,j=0,k=0; 5 scanf("%d",&n); 6 for(i=0;i<n;i++) 7 a[i]=i+1; 8 p=a; 9 while(j!=n-1)10 { if(*p!=0) k++;11 if(k==3) *p=0,j++,k=0;12 p++;13 if(p==a+n) p=a;14 }15 for(i=0;i<n;i++)16 if(... 阅读全文
posted @ 2012-08-04 21:48 blue—— 阅读(258) 评论(0) 推荐(0)
摘要:1 #include <stdio.h> 2 int main() 3 { 4 int i=0,a[10]={0},s=0; 5 char *p,*q; 6 char str[100]={0}; 7 gets(str); 8 p=&str[0]; 9 for(;*p!='\0';p++)10 {11 if(*p>='0'&&*p<='9')12 {13 for(q=p;*q>='0'&&*q<='9';q++)14 {15 s=s*10+( 阅读全文
posted @ 2012-07-31 23:18 blue—— 阅读(184) 评论(0) 推荐(0)
摘要:1 #include <stdio.h> 2 #include <stdlib.h> 3 void fun(double); 4 double c,m,n; 5 6 void chage(double m,double n) 7 { 8 if(m>n) 9 printf("<0\n");10 else11 { 12 c=n-m;13 printf("%.2lf=",n-m);14 fun(50);15 fun(20);16 fun(10);17 fun(5);18 ... 阅读全文
posted @ 2012-07-31 22:05 blue—— 阅读(260) 评论(0) 推荐(0)
摘要:函数名: bsearch 功 能: 二分法搜索 用 法: void *bsearch(const void *key, const void *base, size_t nelem, size_t width, int(*fcmp)(const void *, const *)) 语法: #include <stdlib.h> void *bsearch( const void *key, const void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) ); 参数:第一个:要查 阅读全文
posted @ 2012-07-19 20:29 blue—— 阅读(527) 评论(0) 推荐(0)
摘要:qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *)); 各参数:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针用于确定排序的顺序 排序方法有很多种, 选择排序,冒泡排序,归并排序,快速排序等。 看名字都知道快速排序 是目前公认的一种比较好的排序算法(我没听书速度比这快的了,特殊场合例外),比选择排序,冒泡排序都要快。这是因为他速度很快,所以系统也在库里实现这个算法,便... 阅读全文
posted @ 2012-07-19 19:46 blue—— 阅读(267) 评论(0) 推荐(0)
摘要:stdlib 头文件即standard library标准库头文件 stdlib 头文件里包含了C、C++语言的最常用的系统函数 该文件包含了的C语言标准库函数的定义 stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。 具... 阅读全文
posted @ 2012-07-19 12:47 blue—— 阅读(385) 评论(0) 推荐(0)
摘要:1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 int wei(int n) 5 { 6 int i; 7 double sum=0; 8 for(i=1;i<=n;i++) sum+=log10((double)i); 9 return (int)((sum+1)/4+1);10 }11 int main()12 {13 int i,j,n,jinwei,weishu=1,temp;14 unsigned int *x;15 scanf("%d",& 阅读全文
posted @ 2012-07-19 12:42 blue—— 阅读(157) 评论(0) 推荐(0)
摘要:用C语言总结一下常用排序算法,虽然大多数语言里已经提供了排序算法,比如C函数库中提供了qsort排序函数(内部为快速排序实现),但理解排序算法的思想的意义远远超过了实用的价值。这里我总结了常用的排序算法,并用C语言实现。这些算法的书写顺序也有一定的关联,比如希尔排序是对插入算法的改进,快速排序是对冒泡排序的改进,快速排序和归并排序都用递归实现。注:每种方法的实现尽量提供了相同的形参列表。这里并没用涉及堆排序,箱排序等算法的实现。 插入排序算法概要:插入排序依据遍历到第N个元素的时候前面的N-1个元素已经是排序好的,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列 阅读全文
posted @ 2012-07-19 12:32 blue—— 阅读(607) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <stdlib.h>int main(){long int a,b,c;scanf("%ld%ld",&a,&b);printf("%ld/%ld=",a,b);while(1){if(b%a)c=b/a+1;else{ c=b/a; a=1;}if(a==1){printf("1/%ld\n",c);break;}elseprintf("1/%ld+",c);a=a*c-b;b=b*c;if(a==3){ printf( 阅读全文
posted @ 2012-07-19 09:44 blue—— 阅读(131) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <stdlib.h>int main(){char a,b='x',c='x'; for(a='x';a<='z';a++) for(b='x';b<='z';b++) if(a!='x' && b!=a) for(c='x';c<='z';c++) if(c!='z' && c!='x' &a 阅读全文
posted @ 2012-07-19 09:40 blue—— 阅读(142) 评论(0) 推荐(0)
摘要:1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 char a[99],b[30][30]; 6 int i=0,j=0,k=0,m=0; 7 gets(a); 8 while(a[i]!='\0') 9 {10 if(a[i]!=' ' && a[i]!='.' && a[i]!=',')11 {12 b[j][k]=a[i];13 k++;14 }15 else16... 阅读全文
posted @ 2012-07-17 19:30 blue—— 阅读(160) 评论(0) 推荐(0)