编一个程序,用来求2个或3个正整数中的最大数。 用不带默认参数的函数实现和用带有默认参数的函数实现。
时间: 2024-09-28 22:10:06 浏览: 32
首先,让我们分别介绍如何使用不带默认参数的函数和带有默认参数的函数来找出两个或三个正整数中的最大值。
**不带默认参数的函数实现(接受任意数量的整数)**:
```c
#include <stdio.h>
// 函数声明
int find_max(int num1, int num2);
// 函数定义,用于找出两个数的最大值
int find_max(int a, int b) {
return (a > b) ? a : b;
}
int main() {
// 输入两个正整数
int num1, num2;
printf("Enter two positive integers: ");
scanf("%d %d", &num1, &num2);
int max_num = find_max(num1, num2);
printf("The maximum of the two numbers is: %d\n", max_num);
// 如果有第三个数,再调用一次函数
int num3;
printf("Enter another number (optional): ");
scanf("%d", &num3);
if (num3 > 0) {
int max_of_three = find_max(max_num, num3);
printf("The maximum of three numbers is: %d\n", max_of_three);
}
return 0;
}
```
**带有默认参数的函数实现(固定处理两个数的情况)**:
```c
#include <stdio.h>
// 函数声明,带有默认参数(假设总是处理两个数)
void find_max(int *a, int *b, int *max);
int main() {
// 初始化变量
int num1, num2, max_num;
printf("Enter two positive integers: ");
scanf("%d %d", &num1, &num2);
max_num = num1 > num2 ? num1 : num2; // 不用函数直接比较
// 输出第一个最大值
printf("The maximum of the two numbers is: %d\n", max_num);
// 如果有第三个数,调用带有默认参数的函数
int num3;
printf("Enter another number (optional): ");
scanf("%d", &num3);
if (num3 > 0) {
find_max(&num1, &num2, &max_num); // 传递指针并更新结果
printf("The maximum of three numbers is: %d\n", max_num);
}
return 0;
}
// 函数定义,接受两个整数及其指针
void find_max(int *a, int *b, int *max) {
if (*a > *b) {
*max = *a;
} else {
*max = *b;
}
}
```
阅读全文