linux编写两个函数,其中一个求数组中的最大值与最小值,另一函数求某一个数的个数, 建立一个库,对程序进行调试
时间: 2024-03-24 21:38:07 浏览: 72
linux下程序的编译及调试
好,我来为您编写这两个函数并建立库文件。
第一个函数用于求解数组的最大值和最小值,可以采用遍历数组的方式实现:
```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];
}
}
}
```
第二个函数用于求某个数在数组中出现的次数,同样可以采用遍历数组的方式实现:
```c
#include <stdio.h>
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;
}
```
接下来,我们可以将这两个函数打包成一个库文件:
```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 libutils.c -o libutils.o
ar rcs libutils.a libutils.o
```
最后,我们可以在我们的主程序中使用这个库文件:
```c
#include <stdio.h>
#include "libutils.h"
int main()
{
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;
}
```
编译并运行程序:
```
gcc main.c -L. -lutils -o main
./main
```
输出结果为:
```
min = 1, max = 5
count = 1
```
至此,我们完成了两个函数的编写和库文件的建立,并成功调用了这些函数。
阅读全文