用C语言编写自定义函数:

Python012

用C语言编写自定义函数:,第1张

(1)素数判断函数:是返回1,否则返回0

int prime(int n){

int i

if(n>2 && !(n&1) || n<2)

return 0

for(i=3i*i<=ni+=2)

if(!(n%i))

return 0

return 1

}

(2)编写排序函数(冒泡排序、选择排序)

void bubbling(int *p,int n){//冒泡

int i,j,k

for(i=0i<ni++)

for(j=1j<nj++)

if(p[j]<p[j-1])

k=p[j],p[j]=p[j-1],p[j-1]=k

} void select(int *p,int n){//选择

int i,j,k

for(n--,i=0i<ni++){

for(k=i,j=k+1j<=nj++)

if(p[k]<p[j])

k=j

if(k-i)

j=p[k],p[k]=p[i],p[i]=j

}

}

(3)查找函数,找到返回下标,否则返回-1

int find(int *p,int n,int x){//顺序

int i

for(i=0i<ni++)

if(p[i]==x)

return i

return -1

} int fihalf(int *p,int n,int x){//折半,升序为例

int l,r,m

l=0,r=n-1

while(m=(l+r)>>1,l<r && p[m]-x)

p[m]<x ? l=m+1 : r=m-1

return p[m]==x ? m : -1

}

(4)插入函数,升序为例

#include <stdio.h>

int fun(int n) { return n*n }

int main() { int n

  scanf("%d",&n)

  printf("%d",fun(n))

} #include <stdio.h>

int fun() { int n scanf("%d",&n) return n*n }

int main() { printf("%d",fun()) }

推荐使用前面那个,一般由主程序进行输入和输出,函数负责处理数据,除非是输入函数和输出函数,即使这样也不会即输入又计算n*n,导致函数功能过于复杂、调用含义不清

可以的,前提是,在使用一个函数之前必须先对他进行声明:

//void B()声明B函数的存在。

void A()

{

B()//非法,程序执行到此时并不知道B函数的存在。

}

void B()

{

}

或者

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int fa(int n)

{

int a

for(a=2a<=sqrt(n*1.0),n%a!=0a++)

if(a>sqrt(n*1.0))

return(1)

else

return(0)

}

void main( )

{

int n,q

scanf("%d",&n)

扩展资料

从函数定义的角度看,函数可分为库函数和用户定义函数两种。

(1)库函数

由C系统提供,用户无须定义, 也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用。在前面各章的例题中反复用到printf 、 scanf 、 getchar 、putchar、gets、puts、strcat等函数均属此类。

(2)用户定义函数

由用户按需要写的函数。对于用户自定义函数, 不仅要在程序中定义函数本身, 而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。