统计各年龄段人数 int i;
for(i=0;i<11;i++)b[i]=0; for(i=0;i<N;i++)
if(a[i]<100)b[a[i]/10]++; 长度为2的字符串在另一个字符串中出现的b[k]=0; 次数 for(i=0;a[i];i++)a[i]=b[i]; int i,k=0; a[i]=0; for(i=0;str[i];i++) 字符串删除指定下标的字符 int i,k=0;
else b[10]++; k++; return k;
合并M个字符串为一行组成一个字符串 字符串问题:
int i,,j,k=0; 统计26个小写字母的个数放到pp数组 for(i=0;i<M;i++) int i;
for(j=0;a[i][j];j++) for(i=0;i<26;i++) pp[i]=0; b[k++]=a[i][j]; for(i=0;tt[i];i++)
b[k]=0; if(tt[i]>='a'&&tt[i]<='z') 统计字符串中单词的个数 pp[tt[i]-97]++;
int i,k=0; 除了下标为奇数同时ASCII值也为奇数的for(i=0;s[i];i++) 字符之外都删除 if(s[i]!=' '&&(s[i+1]==' '||s[i+1]==0)) int i,k=0;
k++; for(i=0;s[i];i++) if(i%2!=0&&s[i]%2!=0) return k; t[k++]=s[i]; 删前导‘*’号 t[k]=0;
int h,i,k=0; 删除指定的字符 for(h=0;a[h]=='*';h++) ; int i,k=0;
for(i=h;a[i];i++)a[k++]=a[i]; for(i=0;s[i];i++) if(s[i]!=c) s[k++]=s[i]; a[k]=0; s[k]=0;
除前导‘*’以外都删 字符串转整数 例 “1234”得到 1234 int i,h,k=0; long i,t=0; for(h=0;a[h]=='*';h++) ; if( p[0]!='-')
for(i=0;i<h;i++) a[k++]=a[i]; { for(i=0;p[i];i++) for(i=h;a[i];i++) { t=t*10+(p[i]-48); } if(a[i]!='*') a[k++]=a[i]; return t; a[k]=0; } 删'*'号:除首尾 删中间 else
int k=0;char *i; { for(i=1;p[i];i++)
for(i=a;i<h;i++) a[k++]=*i; { t=t*10+(p[i]-48);} for(i=h;i<=p;i++) if(*i!='*')a[k++]=*i; return -t; for(i=p+1;*i;i++) a[k++]=*i; } a[k]=0; 判断回文 int i,j;
for(i=0,j=strlen(str)-1;i<j;i++,j--) 删全部‘*’ if(str[i]!=str[j]) break;
int i,k=0; if(i<j) return 0; else return 1; for(i=0;a[i];i++) 比较两个字符串的长度找最长的 if(a[i]!='*') a[k++]=a[i]; int i,j;
a[k]=0; for(i=0;s[i];i++); 删前导和尾部 for(j=0;t[j];j++);
int i,k=0; if(i>=j) return s; else return t; for(i=h;i<n-e;i++) a[k++]=a[i]; 移动字符串第1到第m个字符 a[k]=0; int i,k=0;char b[100];
除尾部*号外都删 for(i=m;w[i];i++)b[k++]=w[i]; int k=0;char *i; for(i=0;i<m;i++)b[k++]=w[i]; for(i=a;i<=p;i++) if(*i!='*')a[k++]=*i; b[k]=0;
for(i=p+1;*i;i++) a[k++]=*i; for(i=0;b[i];i++) w[i]=b[i]; a[k]=0;
尾部的*号不得多于n个 从num个字符串中找出最长的一个字符串 int i,t=0,p; int i,m,t;
for(p=0;a[p];p++); m=strlen(a[0]);t=0; for(p--;a[p]=='*';p--) t++; for(i=0;i<num;i++) if(t>n) a[p+n+1]=0; if(strlen(a[i])>m)
前导的*号不得多于n个 {m=strlen(a[i]); t=i;} int i,k=0,h; *max=a[t];
for(h=0;a[h]=='*';h++); 将字符串中下标为奇数的字母转换为大写 if(h>n) int i;
{ for(i=t-n;a[i];i++) for(i=0;ss[i];i++)
a[k++]=a[i]; if(i%2!=0&&(ss[i]>='a'&&ss[i]<='z'))
a[k]=0; ss[i]-=32; } 两个字符串的连接 前导'*'号移到尾部 int i,t;
int i,k=0,h;char b[100]; for(t=0;p1[t];t++);
for(h=0;a[h]=='*';h++); for(i=0;p2[i];i++) p1[t++]=p2[i]; for(i=h;a[i];i++)b[k++]=a[i]; p1[t]=0; for(i=0;i<h;i++)b[k++]=a[i]; for(i=0;a[i];i++) if(i!=n) b[k++]=a[i]; b[k]=0; 一维数组问题: 找出一维数组最大值和下标,通过形参传回
int i,m=a[0],t=0; for(i=0;i<n;i++) if(m<a[i]){m=a[i];t=i;} *max=m; *d=t; 删去一维数组中所有相同的数, 使之只剩一个 int i,k=0; for(i=0;i<n;i++) {if(a[i]!=a[i+1]) a[k++]=a[i]; return k; 将低于平均分的人数作为函数值返回低于平均分的分数放在below所指的数组 int i,k=0; float sum=0,t; for(i=0;i<m;i++) sum+=score[i]; t=sum/m; for(i=0;i<m;i++) { if(score[i]<t)below[k++]=score[i];} return k; 把下标从0到p(含p)的元素移到最后 int i,b[100],k=0; for(i=p+1;i<n;i++) b[k++]=w[i]; for(i=0;i<=p;i++) b[k++]=w[i]; for(i=0;i<k;i++) w[i]=b[i]; 相邻两个元素的平均值的平方根之和 int i; double sum=0; for(i=0;i<8;i++) sum+=sqrt((x[i]+x[i+1])/2.0); return sum; 穷举搜素问题: 求出1到1000内能被7或11整除,但不能同时整除的数 int i,k=0; for(i=1;i<=1000;i++) if(i%7==0&&i%11!=0||i%7!=0&&i%11==0) a[k++]=i; *n=k; 求出能整除x且不是偶数的各整数, int i,k=0; for(i=1;i<=x;i++) if(x%i==0&&i%2!=0) pp[k++]=i; *n=k; 数学问题: 公式求π的值(要求精度0.0005小于0.0005时停止迭代) int i; double t=1,sum=1; for(i=1;t>=eps;i++) { t*=i/(2*i+1.0); sum+=t; } return sum*2; 公式 1 1 1 S = ── + ── + ? + ─── 1×2 2×3 n(n+1) int i;double sum=0; for(i=1;i<=n;i++) sum+=1.0/(i*(i+1)); return sum; 公式S=1+(1+20.5)+(1+20.5+30.5....)
int i;double sum=0,t=0; int i,a;double sum=0; for(i=1;i<=n;i++)
for(a=3;a<n;a++)
{ t+=pow(i,0.5); sum+=t;} { for(i=2;i<a;i++) if(a%i==0) break; return sum;
if(a==i) sum+=sqrt(a); x2 x3 xn }
公式 S = 1 + x + ─ + ─ + ... + ─ return sum;
2! 3! n! 求大于m且仅靠m的k个素数 int i; double sum=1,t=1; int i,a,t=0;
for(i=1;i<=n;i++)
for(a=m+1;t<k;a++)
{ t*=i; sum+=pow(x,i)/t;} { for(i=2;i<a;i++) if(a%i==0)break;
return sum;
if(a==i) xx[t++]=a; 1 1 1 } 公式 S = 1 + ── + ── + ... + ──
1+2 1+2+3 1+... n 二维数组问题:
int i;double sum=0,t=0;
二维数组2*M的最大值 for(i=1;i<=n;i++){t+=i; sum+=1.0/t;} int i,j,max=a[0][0]; return sum;
for(i=0;i<2;i++) 公式 1 1 1 1 1 for(j=0;j<M;j++)
S =(1 - ─) + (─ - ─) +... (── - ──) if(max<a[i][j])max=a[i][j]; 2 3 4 2n-1 2n return max;
int i;double sum=0; 二维数组每列元素放入字符串 for(i=1;i<=n;i++)
int i,j,k=0;
sum+=(1.0/(2*i-1))-(1.0/(2*i)); for(j=0;j<N;j++) return sum;
for(i=0;i<M;i++) 公式s = (ln(1)+ln(2)...ln(n))0.5 b[k++]=s[i][j]; int i;double sum=0;
b[k]=0;
for(i=1;i<=n;i++) sum+=log(i); 二维数组转制 return pow(sum,0.5); int i,j,t;
因子之和 for(i=0;i<3;i++) int i,sum=0;
for(j=0;j<i;j++)
for(i=2;i<n;i++) if(n%i==0) sum+=i; {t=array[i][j];array[i][j]=array[j][i]; return sum;
array[j][i]=t;} 迭代方法求方程:cos(x)-x=0 的一个实根
double x0=10,x1=cos(x0); 二维数组列最小元素存入pp数组 while(fabs(x0-x1)>=0.000001)
int i,j,m,k=0; { x1=x0;x0=cos(x1); }
for(j=0;j<N;j++) return x0;
{ m=tt[0][j];
求出w的后 n-1位的数作为函数值返回 for(i=0;i<M;j++)
long i,t=1,m,t=0; if(m>tt[i][j]) m=tt[i][j]; m=w;
pp[k++]=m; while(w!=0){w/=10;t++;} }
for(i=1;i<t;i++) t*=10; 二维数组转制B=A+A' return m%t;
int i,j;
保留2位小数对第三位进行四舍五入 for(i=0;i<3;i++)
return (long)(h*100+0.5)/100.0; for(j=0;j<3;j++) b[i][j]=a[i][j]+a[j][i]; 求m!/(n!*(m-n)!)
二维数组按行的顺序依次放到一维数组中int i;double t1=1,t2=1,t3=1; int i,j,k=0;
for(i=1;i<=m;i++) t1*=i; for(i=0;i<mm;i++) for(i=1;i<=n;i++)t2*=i; for(j=0;j<nn;j++) for(i=1;i<=m-n;i++)t3*=i; b[k++]=s[i][j]; return t1/(t2*t3);
*n=k;
fibonacci数列大于t的最小的数 二维数组周边元素平均值 int a=0,b=1,c=1;
int i,j;double sum=0; while(c<=t) { a=b;b=c;c=a+b;} return c; for(i=0;i<N;i++)
for(j=0;j<N;j++)
素数问题:
if(i==0||i==N-1||j==0||j==N-1) 大于1小于m的非素数存入xx数组 sum+=w[i][j]; int i,a,t=0;
return sum/(4*N-4); for(a=2;a<m;a++)
下半三角元素置0 { for(i=2;i<a;i++) if(a%i==0)break; int i,j;
if(i<a) xx[t++]=a; for(i=0;i<N;i++)
} for(j=0;j<N;j++) if(i>=j) a[i][j]=0; *k=t;