请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。 #include <stdio.h> #include <stdlib.h> void NONO(); void fun(int *a,int *b,int *c,int *d) { /*************代码开始**********/ /*************代码结束**********/ } void main() { int a, b, c, d; printf("请输入4个整数: "); scanf("%d%d%d%d",&a,&b,&c,&d); printf("原始顺序:%d,%d,%d,%d\n",a,b,c,d); fun(&a,&b,&c,&d); printf("处理后:%d,%d,%d,%d\n",a,b,c,d); NONO(); system("pause"); } void NONO() {/* 本函数用于打开文件,输入数据, 调用函数,输出数据,关闭文件。*/ FILE *fp,*wf; int i, a, b, c, d ; fp = fopen("in.dat","r"); wf = fopen("out.dat","w"); for(i=0;i<5;i++ ) { fscanf(fp,"%d %d %d %d",&a,&b,&c,&d); fun(&a,&b,&c,&d); fprintf(wf,"a=%d,d=%d\n",a,d); } fclose(fp); fclose(wf); }
时间: 2023-08-07 18:05:24 浏览: 186
下面是函数fun的代码:
void fun(int *a, int *b, int *c, int *d) {
int max = *a, min = *a;
if (*b > max) max = *b;
if (*c > max) max = *c;
if (*d > max) max = *d;
if (*b < min) min = *b;
if (*c < min) min = *c;
if (*d < min) min = *d;
*a = max;
*d = min;
}
函数中,首先定义了两个变量max和min,分别初始化为a所指向的值。然后依次判断b、c、d所指向的值是否比max大,如果是则更新max的值。同理,依次判断b、c、d所指向的值是否比min小,如果是则更新min的值。最后将max的值赋给a所指向的位置,将min的值赋给d所指向的位置。
相关问题
请编写c语言程序:函数fun()的功能是:对传送过来的三个浮点数选出最大值和最小值,其中三个形参传递操作数,另外两个形参传送回计算得到最大值和最小值在main()函数中 通过键盘输入的形式得到三个实参的 值,然后调用fun函数
以下是实现上述功能的C语言程序:
```c
#include <stdio.h>
void fun(float a, float b, float c, float *max, float *min);
int main() {
float a, b, c, max, min;
printf("请输入三个浮点数:");
scanf("%f %f %f", &a, &b, &c);
fun(a, b, c, &max, &min);
printf("最大值为:%f,最小值为:%f\n", max, min);
return 0;
}
void fun(float a, float b, float c, float *max, float *min) {
*max = a > b ? (a > c ? a : c) : (b > c ? b : c);
*min = a < b ? (a < c ? a : c) : (b < c ? b : c);
}
```
程序中,`fun`函数的形参中包含三个浮点数和两个指针变量,其中三个浮点数用于存储操作数,两个指针变量用于传回计算得到的最大值和最小值。在`main`函数中,通过键盘输入的形式获取三个实参的值,然后调用`fun`函数,最后输出计算得到的最大值和最小值。
1、编写函数利用形参指针返回 10 个整数的最大值、最小值和平均值。 函数声明如下: void find(int*a,int n, int*max, int*min, int*aver);
在这个函数中,你需要遍历传入的整型数组,同时计算最大值、最小值和累加求平均值。以下是函数的实现:
```cpp
#include <iostream>
// 计算单个元素与已知最大值和最小值的关系
void updateMinMax(int num, int* max, int* min) {
if (*min > num) {
*min = num;
}
if (*max < num) {
*max = num;
}
}
// 计算平均值并更新累加和
void accumulateAverage(int num, int sum, int count, int* aver) {
sum += num;
count++;
*aver = sum / count;
}
// 主函数:find
void find(int* a, int n, int* max, int* min, int* aver) {
*max = a[0]; // 初始最大值设为第一个元素
*min = a[0]; // 初始最小值设为第一个元素
int sum = 0; // 初始化总和
int count = 1; // 初始化元素计数
for (int i = 1; i < n; i++) {
updateMinMax(a[i], max, min);
accumulateAverage(a[i], sum, count, aver);
}
}
int main() {
int numbers[10] = {5, 2, 8, 1, 9, 4, 7, 6, 3, 0};
int* maxValue = new int;
int* minValue = new int;
int* averageValue = new int;
find(numbers, sizeof(numbers) / sizeof(numbers[0]), maxValue, minValue, averageValue);
std::cout << "Max value: " << *maxValue << ", Min value: " << *minValue << ", Average value: " << *averageValue << std::endl;
delete maxValue;
delete minValue;
delete averageValue;
return 0;
}
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)