1.返回值类型 函数名 ( 参数列表 ) //参数列表:类型 参数名
{
代码块;
return 0;
}
返回值类型: 有 int char float.../ 无 void 参数列表: 有 int a ,char b,float c.../ 无 ()
基本练习:
#import <Foundation/Foundation.h>
void Hello(){
printf("hello world
");
}
void printNum(int x){
for (int i = 0; i < x; i++) {
printf("x = %d
",i + 1);
}
}
void sumValue(int x){
int sum = 0;
for (int i = 0; i < x; i++) {
sum += i + 1;
}
printf("sum = %d
",sum);
}
void maxValue1(int num1,int num2){
int max = 0;
max = num1 > num2 ? num1 : num2;
printf("max = %d
",max);
}
int maxValue2(int x,int y){
return x > y ? x : y;
}
int main(int argc, const char * argv[])
{
Hello();//括号不能少
printNum(5);
sumValue(5);
maxValue1(4, 7);
int max = maxValue2(3, 5);
printf("max = %d
",max);
printf("max = %d
",maxValue2(5, 29));
return 0;
}
2.形参 实参
int maxValue2(int x,int y){//x,y 形参
return x > y ? x : y;
}
int main(int argc, const char * argv[])
{
int max = maxValue2(3, 5);//3,5 实参
printf("max = %d
",max);
return 0;
}
3.数组作为参数
void printArray(int array[],int count){
for (int i = 0; i <count; i++) {
printf("%d
",array[i]);
}
}
int main(int argc, const char * argv[])
{
int array[10] = {1,2,3,4,5,6,7,8,9,0};
printArray(array,10);//(数组名,长度);
return 0;
}
4.函数定义不能嵌套定义,但是能嵌套调用
课上练习:
1.s=(2*2)!+(3*3)!+(4*4)!
int jiecheng(int x){
int sum = 1;
for (int i = 0; i < x; i++) {
sum *= (i + 1);
}
return sum;
}
int main(int argc, const char * argv[])
{
jiecheng(2 * 2) + jiecheng(3 * 3) + jiecheng(4 * 4);
return 0;
}
作业:
1、把以往的作业写到不同的函数中
2、自己实现strcpy函数
void myStrcpy(char s1[],char s2[]){
int i = 0;
while ((s1[i] = s2[i]) != ' ') {
i++;
}
}
3、自己实现strcat函数
void myStrcat(char s1[],char s2[]){
int i = 0,j = 0;
while (s1[i] != ' ') {//找到s1的尾部
i++;
}
while (s2[j] != ' ') {
s1[i] = s2[j];
i++;
j++;
}
s1[i] = ' ';//给s1后面加结束符
}
思考题:汉诺塔