函数的定义:
接收零个或多个参数,做一件事,并返回零个或一个值
返回类型 函数名(形参)(没有参数也要打括号)
{
函数体;
}
定义函数的时候形参是空的,也要在函数名之后打括号;在调用这个函数时,必须要写成
函数名();的形式,才能调用该函数
返回值要和返回类型相匹配才能返回
在一个函数中可以出现多个return;
没有返回值的函数返回类型为void
如果想要把函数定义写在main后面,那么需要在main的前面提前声明函数,否则在main中调用函数时,main会自动猜测函数返回类型,若与下文的函数定义中的返回类型不同,则会报错。
函数声明和函数定义需要一致,函数声明就是把函数定义的函数头提出来写在main的前面;
在函数声明中可以不写参数的名字,但需要写参数的类型;最好都写;
C语言在调用函数时,永远只能传值给函数
定义在函数内部的变量就是本地变量,
本地变量不会被默认初始化
但是参数在进入函数的时候会被初始化
void f(void) 表示该函数明确不接收任何参数
void f( ); 表示函数的参数未知,并不表示没有参数;
1、统计素数
#include <stdio.h>
int isPrime(int i){
//判断i是不是素数
int ret = 1;
for(int j = 2;j < i-1;j++){
if(i % j == 0){
ret = 0;
break;
}
}
return ret;
}
int main(){
int n,m;
scanf("%d %d",&n,&m);
int cnt = 0;
int sum = 0;
if(m == 1){
m = 2;
}
for(int i = m;i < n;i++){
if(isPrime(i) == 1){
cnt++;
sum += i;
}
}
printf("%d %d\n",cnt,sum);
return 0;
}
2、求和
求出1到10、20到30和35到45的三个和
#include <stdio.h>
void sum(int begin,int end){
int sum = 0
for(int i = begin;i <= end;i++){
sum += i;
}
printf("%d和%d的和是%d\n",begin,end,sum);
}
int main(){
sum(1,10);
sum(20,30);
sum(35,45);
return 0;
}