新建网站,关键词排名快速提升,中国商标官方网站,赣州建设培训网官网函数 ○ 一个函数只能完成一个功能. ○ 定义函数#xff1a; 返回值类型 函数名 (参数列表#xff09;{ 函数体 } ○ 定义函数的作用 #xff1a;代码复用 模块化开发 ○ 函数是不能嵌套定义的,但能嵌套调用.… 函数 ○ 一个函数只能完成一个功能. ○ 定义函数 返回值类型 函数名 (参数列表{ 函数体 } ○ 定义函数的作用 代码复用 模块化开发 ○ 函数是不能嵌套定义的,但能嵌套调用. ○ 函数的链式访问将函数的返回值作为另一个函数返回值的参数.
○ 常用库函数 查函数文档 : http://www.dotcpp.com/course/lib/ 让我们通过例题来感受函数的作用吧
○ 判断是否为闰年 函数的应用
#define _CRT_SECURE_NO_WARNINGS 1
#include stdio.hint isLeapYear(int yaer);//声明函数int main() {int year 0;printf(请输入一个年份);scanf(%d, year);int res isLeapYear(year);//调用函数return 0;
}//创建函数
int isLeapYear(int year) {if (year % 4 0 || year % 100 ! 0 year % 400 0) {printf(是闰年\n);}else {printf(不是闰年\n);}return 0;
} ○ 打印100~999的水仙花数函数的应用
#define _CRT_SECURE_NO_WARNINGS 1
#include stdio.hint main() {printf(100-999的水仙花数有\n);int res 0;res shui();return 0;
}
int shui() {int a, b, c;for (int i 100; i 999; i) {a i / 100; //百位b i / 10 % 10;//十位c i % 10; //个位if (i (a * a * a) (b * b * b) (c * c * c)) {printf(%d\n, i); //153,370,371,407共4个}}
}递归 ○ 递归的要素
递归终止的条件递归操作
○ 猴子吃桃问题递归
#define _CRT_SECURE_NO_WARNINGS 1
#include stdio.hint main() {//递归的要素1.递归终止的条件// 2.递归操作//递归函数(语义--[参数列表])//猴子吃桃问题有一堆桃第一天吃了一半觉得好吃多吃了一个第二天吃了剩下的一半觉得好吃又多吃了一个第三天....第四天剩了一个问一共多少桃子printf(输入天数:);int days 0;scanf(%d, days);int nums monkeyEatPeach(days);printf(有%d桃子\n, nums);return 0;}//递归函数int monkeyEatPeach(int day) { //倒数天数//终止条件if (day 1) {return 1;}//递归操作return (monkeyEatPeach(day - 1) 1) * 2;return 0;}○ 求一个数的阶乘递归
#define _CRT_SECURE_NO_WARNINGS 1 /* 求n! */
#include stdio.h
//声明一个函数wn,来求阶乘
int wn(int n) {//递归终止条件if (n 0 || n 1) {return 1;}//递归操作return n * wn(n - 1);
}
int main() {int n 0;printf(请给n赋值);scanf(%d, n);printf(%d!%d\n, n, wn(n));//调用函数return 0;
} ○ 查找斐波那契数列的某一项递归
#define _CRT_SECURE_NO_WARNINGS 1//斐波那契数列(查找第n项
#includestdio.h
int fib(int n) {//终止条件if (n 1|| n 2) {return 1;}//递归操作return(fib(n - 1) fib(n - 2));
}
int main() {int n 0;printf(请输入要查找的项数n:);scanf(%d, n);int res fib(n); //调用函数printf(斐波那契数列的第%d项 %d\n, n, res);return 0;
} 循环 是语法中较为重要的,让我们通过几个例题来巩固下循环吧。 经典例题 ○ 在数组中查找最大的数:数组遍历
#define _CRT_SECURE_NO_WARNINGS 1
#include stdio.h
//自定义了个max函数来实现功能
int max(int arr[], int size) {int max arr[0];//默认第一个元素为最大数for (int i 1; i size; i) {if (arr[i] max) {//遍历数组遇见更大的数就赋给maxmax arr[i];}}return max;
}
int main() {int arr[] { 3, 7, 2, 9, 5 };int size sizeof(arr) / sizeof(arr[0]);//计算数组长度printf(The max value in the arr is: %d\n, max(arr, size));//调用了max函数return 0;
}
○ 99乘法表: 循环
#define _CRT_SECURE_NO_WARNINGS 1
#include stdio.h
int main() {for (int i 1; i 9; i) { for (int j 1; j i; j)printf(%d*%d%d , i, j, i * j);printf(\n);}return 0;
}
○ 输入正确密码循环|判断
#define _CRT_SECURE_NO_WARNINGS 1//输密码
#include stdio.h
int main() {char password[125] { 0 };int count 3;//规定有3次机会do {printf(你还有%d次机会请输入密码(6位)\n, count);scanf(%s, password);if (strcmp(password,211314)0) { //输入211314密码正确printf(恭喜您密码正确);break;}count count - 1;} while (count 1);printf(GAME OVER!);return 0;
}
○ 格式训练格式符号
#define _CRT_SECURE_NO_WARNINGS 1
#include stdio.h
int main() {printf(请输入你的名字\n);char name[20];scanf(%s, name);printf(\%s\\n, name);//加双引号printf(\%20s\\n, name);//数字表示空格正为左对齐printf(\%-20s\\n, name);//负为右对齐printf(%*s, strlen(name) 20, name);//任意添加空格
}