泰安有哪些网站,多语种网站开发,wordpress拉黑用户登录,网站主体备案号1. 调用有参函数
有参函数是一种接受输入参数#xff08;参数值#xff09;并执行特定操作的函数。通过向函数传递参数#xff0c;你可以将数据传递给函数#xff0c;让函数处理这些数据并返回结果。
例1#xff1a;编写一程序#xff0c;要求用户输入4 个数字#xf…
1. 调用有参函数
有参函数是一种接受输入参数参数值并执行特定操作的函数。通过向函数传递参数你可以将数据传递给函数让函数处理这些数据并返回结果。
例1编写一程序要求用户输入4 个数字输出前两个数中的最大数、后两个数中的最大数以及四个数中的最大数。
#include stdio.hdouble max(double x, double y);int main() {double a[4];int i;for (i 0; i 4; i) {if (scanf(%lf, a[i]) ! 1) {printf(输入不合法请输入一个有效的数字。\n);return 1; // 退出程序返回错误代码}}double t max(a[0], a[1]);double u max(a[2], a[3]);double v max(t, u);printf(前两个数中的最大数为%.2lf\n, t);printf(后两个数中的最大数为%.2lf\n, u);printf(四个数中的最大数为%.2lf\n, v);return 0;
}double max(double x, double y) {return (x y ? x : y);
}
运行结果
例 2有两个小组分别有5名学生和10名学生。请编程输入这些学生的成绩并调用一个 average 函数求这两个小组的平均分。
#include stdio.hfloat average(float a[], int n);int main() {float zu1[5], zu2[10];int i;for (i 0; i 5; i) {if (scanf(%f, zu1[i]) ! 1) {printf(输入不合法请输入一个有效的数字。\n);return 1; // 退出程序返回错误代码}}for (i 0; i 10; i) {if (scanf(%f, zu2[i]) ! 1) {printf(输入不合法请输入一个有效的数字。\n);return 1; // 退出程序返回错误代码}}printf(第 1 组平均分是%.2f\n, average(zu1, 5));printf(第 2 组平均分是%.2f\n, average(zu2, 10));return 0;
}float average(float a[], int n) {float sum 0.0, average;int i;for (i 0; i n; i) {sum a[i];}average sum / n;return average;
}
运行结果
2. 调用无参函数
无参函数是一种不需要接受任何输入参数的函数。它们通常用于执行一些固定的任务或打印消息而不依赖于外部数据。
例 1请编程输出以下内容
123456
小翟是大帅逼
654321
小翟是大帅逼
654321
小翟是大帅逼#includestdio.hvoid a();
void b();
void c();int main() {a();b();c();b();c();b();return 0;
}
void a() {printf(123456\n);
}
void b() {printf(小翟是大帅逼\n);
}
void c() {printf(654321\n);
}
运行结果
例 2请编程输入 10 个整数并将这 10 个数由小到大排序。
#includestdio.hvoid paixu(int a[], int n); // 修正参数列表int main() {int a[10], i;printf(请输入 10 个整数:\n);for (i 0; i 10; i)scanf(%d, a[i]);paixu(a, 10);printf(排序后的整数依次是:\n);for (i 0; i 10; i)printf(%d\t, a[i]);printf(\n);return 0;
}void paixu(int a[], int n) {int i, j, t;for (i 0; i n - 1; i)for (j i 1; j n; j)if (a[i] a[j]) {t a[i];a[i] a[j];a[j] t;}
}
运行结果
3. 函数的嵌套
函数的嵌套是指在一个函数内部调用另一个函数。这允许你将程序分解成更小的、可管理的部分。嵌套函数通常有助于提高代码的可读性和可维护性。
例 1请编程输入 4 个整数并找出其中最大的数。
#include stdio.hint max4(int a, int b, int c, int d);
int max2(int a, int b);int main()
{int a, b, c, d, zuidashu;scanf(%d %d %d %d, a, b, c, d);zuidashu max4(a, b, c, d);printf(最大数为%d\n, zuidashu);return 0;
}int max4(int a, int b, int c, int d)
{int max2(int a, int b);return (max2(max2(max2(a, b), c), d));
}int max2(int a, int b)
{return (a b ? a : b);
}
运行结果
4. 函数的递归
递归是一种函数调用自身的过程。递归函数通常包括两个部分基本情况和递归情况。基本情况是一个停止条件它指定何时结束递归。递归情况则定义了函数如何继续调用自身以解决更小的子问题。递归在解决需要重复分解的问题时非常有用如计算阶乘或斐波那契数列等。
例1有5个学生第5个学生比第4个学生大2岁第4个学生比第3个学生大2岁第3个学生比第2个学生大2岁第2个学生比第1个学生大2岁第1个学生是10岁。请编程计算出第5个学生的年龄。
#include stdio.hint calculateAge(int studentNumber);int main() {int ageOfFifthStudent calculateAge(5);printf(第5个学生的年龄%d岁\n, ageOfFifthStudent);return 0;
}int calculateAge(int studentNumber) {if (studentNumber 1) {return 10; // 第1个学生是10岁} else {// 递归计算年龄每个学生比前一个学生大2岁return calculateAge(studentNumber - 1) 2;}
}
运行结果
例 2用递归方法求 n!注意取值范围
#include stdio.hint factorial(int n);int main()
{int num;printf(Please enter an integer: );scanf(%d, num);printf(%d! %d\n, num, factorial(num));return 0;
}int factorial(int n)
{int result;if (n 0)printf(n 0, incorrect input!\n);else if (n 0 || n 1)result 1;elseresult factorial(n - 1) * n;return result;
}
运行结果