linux创建一个文件编写两个函数,其中一个求数组中的最大值与最小值,另一函数求某一个数的个数, 建立一个库,对程序进行调试
时间: 2024-03-24 14:38:08 浏览: 54
好的,我来为您编写这个程序。
首先,我们需要创建一个文件,比如命名为`utils.c`,并在该文件中编写两个函数:`find_min_max`和`count_num`。
```c
#include <stdio.h>
void find_min_max(int arr[], int size, int *min, int *max)
{
*min = arr[0];
*max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < *min) {
*min = arr[i];
}
if (arr[i] > *max) {
*max = arr[i];
}
}
}
int count_num(int arr[], int size, int num)
{
int count = 0;
for (int i = 0; i < size; i++) {
if (arr[i] == num) {
count++;
}
}
return count;
}
```
接着,我们需要将这两个函数打包成一个库文件。可以使用以下命令进行编译:
```
gcc -c utils.c -o utils.o // 编译成目标文件
ar rcs libutils.a utils.o // 打包成静态库
```
这样,我们就成功创建了一个名为`libutils.a`的静态库文件。
接下来,我们可以在主程序中调用这个库文件中的函数。我们先创建一个名为`main.c`的文件,并在其中编写主程序。
```c
#include <stdio.h>
#include "utils.h"
int main(void)
{
int arr[] = {3, 5, 1, 2, 4};
int size = sizeof(arr) / sizeof(arr[0]);
int min, max;
find_min_max(arr, size, &min, &max);
printf("min = %d, max = %d\n", min, max);
int count = count_num(arr, size, 3);
printf("count = %d\n", count);
return 0;
}
```
注意,我们在程序中引用了`utils.h`头文件,这个头文件中包含了我们要使用的函数的声明。
接下来,我们需要编译主程序,并将库文件链接进来:
```
gcc main.c -L. -lutils -o main
```
这个命令中,`-L.`指定了库文件的路径为当前目录,`-lutils`指定了要链接的库文件为`libutils.a`。
最后,我们可以运行程序:
```
./main
```
程序会输出数组的最大值和最小值,以及数字3在数组中出现的次数。
至此,我们就成功地编写了一个包含两个函数和一个库文件的程序,并成功进行了调试。
阅读全文