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