自定义字符函数: 1. mystrlen(自定义测字符串长度)
#include<stdio.h> int mystrlen(const char str[]); int main() { char a[20]; gets(a); mystrlen(a); printf("字符串长为%d",mystrlen(a)); } int mystrlen(const char str[]) { int leng=0; int i; for(i=0;str[i]!='\0';i++) leng++; return leng; } mystrcpy(自定义字符串复制函数) #include<stdio.h> void mystrcpy(char str1[],const char str2[]); int main() { char a[20],b[20]; gets(a); gets(b); mystrcpy(a,b); puts(a); } void mystrcpy(char str1[],const char str2[]) { int i; while(str1[i]!='\0') { str1[i]=str2[i]; i++; }str2[i]!='\0'; }3. mystrcat(自定义字符连接函数)
#include<stdio.h> void mystrcat(char str1[],const char str2[]); int main() { char a[40],b[20]; gets(a); gets(b); mystrcat(a,b); puts(a); } void mystrcat(char str1[],const char str2[]) { int i,j; int count; for(i=0;str1[i]!='\0';i++) { count++; } for(j=0;str2[j]!='\0';j++) str1[count+j]=str2[j]; }二.常用函数 1.fact(求阶乘)
1) double fact(int n) int i,t=1; for(i=1;i<=n;i++) t=t*i; return t; } 2)递归 double fact(int n) { if(n==0||n==1) return 1; else return n*fact(n-1); }2.Prime(判断是否为质数)
void prime(int x) { int i; for(i=2;i<x;i++) { if(x%i==0) break; } if(i<x) printf("该数不是质数"); else printf("该数为质数"); return; }4. swap(数值交换) 如果希望在swap函数中交换主函数中两个变量的值,只能将函数的形参由基本类型修改为指针类型,通过用指针类型变量作函数的形式参数来实现。 输入:swap(&a,&b); //输入为地址
void swap(int *p1,int *p2) { int t; t=*p1; *p1=*p2; *p2=t; }5.Inputscore,Outputscore,Average(数组输入,输出,求平均数)
void inputscore(int a[],int n) { int i; for(i=0;i<n;i++) scanf("%d",&a[i]); } float average(int a[],int n) { int i,sum; for(i=0;i<n;i++) sum+=a[i]; if(n<=0) return -1; else return sum/float(n); } void outputscore(int a[],int n) int i; for(i=0;i<n;i++) printf("%d\t",a[i]);6. 编写应用递归算法求x^n程序
long power(int x,int n) { long f=0; if (n<0) printf("n<0,data error!\n"); else if (n==0) f=1; else f=x*power(x,n-1); return (f); }