c语言从键盘获取输入两个浮点数,要求以 4 个函数形式分别实现输出其中数值的较 大、较小者、两者均值、总和。函数形参要求必须是指针变量。有余力的同学,建议考 虑将代码以多文件的组织形式实现。
时间: 2024-02-18 11:04:00 浏览: 30
好的,这是一个C语言编程问题。下面是代码实现:
```c
#include <stdio.h>
void max(float *a, float *b);
void min(float *a, float *b);
void average(float *a, float *b);
void sum(float *a, float *b);
int main() {
float a, b;
printf("请输入两个浮点数:");
scanf("%f %f", &a, &b);
max(&a, &b);
min(&a, &b);
average(&a, &b);
sum(&a, &b);
return 0;
}
void max(float *a, float *b) {
if (*a > *b) {
printf("%.2f 大于 %.2f\n", *a, *b);
} else {
printf("%.2f 大于 %.2f\n", *b, *a);
}
}
void min(float *a, float *b) {
if (*a < *b) {
printf("%.2f 小于 %.2f\n", *a, *b);
} else {
printf("%.2f 小于 %.2f\n", *b, *a);
}
}
void average(float *a, float *b) {
float ave = (*a + *b) / 2;
printf("%.2f 和 %.2f 的平均值为 %.2f\n", *a, *b, ave);
}
void sum(float *a, float *b) {
float s = *a + *b;
printf("%.2f 和 %.2f 的总和为 %.2f\n", *a, *b, s);
}
```
本代码中,使用了4个函数,分别用来求两个数的最大值、最小值、平均值和总和。每个函数的形参都是指针变量,用来传递实参的地址。在主函数中,先输入两个浮点数,再调用4个函数进行计算并输出结果。
如果要将代码以多文件形式组织,可以将每个函数分别写在不同的文件中,并在主函数所在的文件中包含这些函数文件的头文件。例如:
文件 `main.c`:
```c
#include <stdio.h>
#include "max.h"
#include "min.h"
#include "average.h"
#include "sum.h"
int main() {
float a, b;
printf("请输入两个浮点数:");
scanf("%f %f", &a, &b);
max(&a, &b);
min(&a, &b);
average(&a, &b);
sum(&a, &b);
return 0;
}
```
文件 `max.h`:
```c
#ifndef MAX_H
#define MAX_H
void max(float *a, float *b);
#endif
```
文件 `max.c`:
```c
#include <stdio.h>
#include "max.h"
void max(float *a, float *b) {
if (*a > *b) {
printf("%.2f 大于 %.2f\n", *a, *b);
} else {
printf("%.2f 大于 %.2f\n", *b, *a);
}
}
```
文件 `min.h`、`min.c`、`average.h`、`average.c`、`sum.h`、`sum.c` 的内容分别与 `max.h`、`max.c` 相似,不再赘述。
在编译时,可以先将每个函数编译成目标文件,再将这些目标文件链接成可执行文件:
```bash
$ gcc -c max.c
$ gcc -c min.c
$ gcc -c average.c
$ gcc -c sum.c
$ gcc main.c max.o min.o average.o sum.o -o main
$ ./main
请输入两个浮点数:1.2 3.4
3.40 大于 1.20
1.20 小于 3.40
1.80 和 3.40 的平均值为 2.30
1.20 和 3.40 的总和为 4.60
```