用C语言编写传入两个数返回最小值封装函数
时间: 2023-05-16 20:06:06 浏览: 116
以下是用C语言编写传入两个数返回最小值封装函数的代码:
```c
int min(int a, int b) {
return a < b ? a : b;
}
```
你可以将这个函数放在你的C程序中,然后调用它来获取两个数的最小值。
相关问题
实验内容:(1) 输入一组数,存入数组中,寻找输入数据中的最大值和最小值。要求:数组中的元素个数由函数动态给出,结果通过函数参数形式返回。c语言
要完成这个实验内容,你可以使用以下步骤编写C程序:
1. 定义一个函数 `findMinMax`,该函数接受两个参数:一个整型指针(指向数组的第一个元素)和数组的大小(元素个数)。这两个参数都是通过函数调用时传入的。
2. 在函数内部,初始化两个变量 `max` 和 `min` 为数组的第一个元素,因为初始时它们可能是最大的或最小的值。
3. 使用一个循环遍历数组,从第二个元素开始比较,如果当前元素比 `max` 大,就更新 `max`;如果当前元素比 `min` 小,就更新 `min`。
4. 循环结束后,`max` 和 `min` 就分别存储了数组中的最大值和最小值。
5. 函数最后返回这两个值,可以通过结构体或者其他合适的方式封装在一起。
以下是简单的C代码示例:
```c
#include <stdio.h>
// 结构体用于返回最大值和最小值
typedef struct {
int min;
int max;
} Result;
// 找到并返回数组的最大值和最小值
Result findMinMax(int* arr, size_t size) {
if (size == 0) {
// 如果数组为空,返回错误
return (Result){.min = -1, .max = -1};
}
Result result = {arr[0], arr[0]};
for (int i = 1; i < size; i++) {
if (arr[i] > result.max) {
result.max = arr[i];
} else if (arr[i] < result.min) {
result.min = arr[i];
}
}
return result;
}
int main() {
int n;
printf("Enter the number of elements in the array: ");
scanf("%d", &n);
// 动态分配内存
int* arr = malloc(n * sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
printf("Enter %d numbers: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
Result result = findMinMax(arr, n);
if (result.min != -1 && result.max != -1) {
printf("Minimum value: %d\n", result.min);
printf("Maximum value: %d\n", result.max);
} else {
printf("Array is empty or not initialized properly.\n");
}
free(arr); // 释放动态分配的内存
return 0;
}
```
阅读全文