用Linux编写两个函数,其中一个求数组中的最大值与最小值,另一函数求某一个数的个数, 建立一个库,对程序进行调试
时间: 2024-03-24 17:36:09 浏览: 78
以下是用Linux编写的两个函数实现:
```c
#include <stdio.h>
// 求最大值和最小值
void max_min(int arr[], int len, int *max, int *min) {
*max = *min = arr[0];
for (int i = 1; i < len; i++) {
if (arr[i] > *max) {
*max = arr[i];
} else if (arr[i] < *min) {
*min = arr[i];
}
}
}
// 求某个数的个数
int count_num(int arr[], int len, int num) {
int count = 0;
for (int i = 0; i < len; i++) {
if (arr[i] == num) {
count++;
}
}
return count;
}
```
然后将这两个函数放在一个头文件中,例如 `mylib.h`:
```c
#ifndef MYLIB_H
#define MYLIB_H
void max_min(int arr[], int len, int *max, int *min);
int count_num(int arr[], int len, int num);
#endif
```
接下来,我们可以将这些函数编译成一个库文件,例如 `libmylib.so`:
```
gcc -c -fPIC mylib.c
gcc -shared -o libmylib.so mylib.o
```
最后,我们可以在主程序中调用这些函数:
```c
#include <stdio.h>
#include "mylib.h"
int main() {
int arr[] = {3, 2, 5, 7, 4, 6, 1, 9, 8};
int len = sizeof(arr) / sizeof(arr[0]);
int max, min, count;
// 调用 max_min 函数
max_min(arr, len, &max, &min);
printf("max: %d, min: %d\n", max, min);
// 调用 count_num 函数
count = count_num(arr, len, 5);
printf("count of 5: %d\n", count);
return 0;
}
```
最后,我们可以使用以下命令编译主程序并链接库文件:
```
gcc main.c -L. -lmylib -o main
```
然后运行程序 `./main` 即可看到输出结果。如果需要调试程序,可以使用 `gdb` 工具进行调试。
阅读全文