I want you to use C to write me a program with two files to work with a sorted array. One file should just be driver code, another file should be finding the mean, rounded down to an int, of the array, and another should be a function to do a binary search of the array.
system
Quero que você use C para me escrever um programa com dois arquivos para trabalhar com uma matriz classificada.Um arquivo deve ser apenas o código do driver, outro arquivo deve encontrar a média, arredondada para um INT, da matriz, e outro deve ser uma função para fazer uma pesquisa binária da matriz.
user
Claro, esse é um bom instinto para dividir seu código C em diferentes arquivos.Aqui está o Arrlib.c, que contém o código do driver e inclui os arquivos do cabeçalho para nos vincular às funções nos outros arquivos:

#include <stdio.h>
#include <stdlib.h>

#include "significa.h"
#include "binsearch.h"

#Define arr_length 20

int main () {
    int * arr = malloc (sizeof (int) * arr_length);

    // Como exemplo, preencheremos a matriz com números pares ascendentes.
    for (int i = 0; i <arr_length; i ++) {
        arr [i] = (i * 2);
    }

    // Imprima a matriz.
    for (int i = 0; i <arr_length; i ++) printf ("%d", arr [i]);
    printf ("\ n");

    // deve retornar 19.
    printf ("média: %d \ n", média (arr, ar_length));

    // deve retornar o índice 6.
    printf ("índice de destino: %d \ n", bin_search (arr, ar_length, 12));

    grátis (arr);
    retornar 0;
}

mean.h e binsearch.h Cada um apenas define as funções.Em mean.h:
Int média (int *arr, int len);

Em binsearch.h:
int bin_search (int *arr, int len, int alvo);

Existem arquivos .c com o mesmo nome, que abriga as implementações das funções.Aqui está o meio.c:
Int Mean (int *arr, int len) {
    int sum = 0;
    para (int i = 0; i <len; i ++) {
        soma += arr [i];
    }
    // Divisão inteira
    Retornar Sum / Len;
}

Aqui está Binsearch.c:
int bin_search (int *arr, int len, int alvo) {
    int l = 0;
    int r = len - 1;
    int mid = (l + r) / 2;
    while (l <= r) {
        //Encontrado:
        if (arr [mid] == Target) retornará no meio;
        // num é muito grande:
        caso contrário, if (arr [mid]> alvo) r = mid;
        // num é muito pequeno:
        else L = MID + 1;
        // Redefina o meio com nossos novos ponteiros esquerdo e direito.
        MID = (L + R) / 2;
    }
    //-1 indica que o elemento não foi encontrado.
    retornar -1;
}

Para compilar com o GCC: GCC arrlib.c mean.c binsearch.c
assistant
<|system|>
</s>
<|user|>
Quero que você use C para me escrever um programa com dois arquivos para trabalhar com uma matriz classificada.Um arquivo deve ser apenas o código do driver, outro arquivo deve encontrar a média, arredondada para um INT, da matriz, e outro deve ser uma função para fazer uma pesquisa binária da matriz.</s>
<|assistant|>
Claro, esse é um bom instinto para dividir seu código C em diferentes arquivos.Aqui está o Arrlib.c, que contém o código do driver e inclui os arquivos do cabeçalho para nos vincular às funções nos outros arquivos:

#include <stdio.h>
#include <stdlib.h>

#include "significa.h"
#include "binsearch.h"

#Define arr_length 20

int main () {
    int * arr = malloc (sizeof (int) * arr_length);

    // Como exemplo, preencheremos a matriz com números pares ascendentes.
    for (int i = 0; i <arr_length; i ++) {
        arr [i] = (i * 2);
    }

    // Imprima a matriz.
    for (int i = 0; i <arr_length; i ++) printf ("%d", arr [i]);
    printf ("\ n");

    // deve retornar 19.
    printf ("média: %d \ n", média (arr, ar_length));

    // deve retornar o índice 6.
    printf ("índice de destino: %d \ n", bin_search (arr, ar_length, 12));

    grátis (arr);
    retornar 0;
}

mean.h e binsearch.h Cada um apenas define as funções.Em mean.h:
Int média (int *arr, int len);

Em binsearch.h:
int bin_search (int *arr, int len, int alvo);

Existem arquivos .c com o mesmo nome, que abriga as implementações das funções.Aqui está o meio.c:
Int Mean (int *arr, int len) {
    int sum = 0;
    para (int i = 0; i <len; i ++) {
        soma += arr [i];
    }
    // Divisão inteira
    Retornar Sum / Len;
}

Aqui está Binsearch.c:
int bin_search (int *arr, int len, int alvo) {
    int l = 0;
    int r = len - 1;
    int mid = (l + r) / 2;
    while (l <= r) {
        //Encontrado:
        if (arr [mid] == Target) retornará no meio;
        // num é muito grande:
        caso contrário, if (arr [mid]> alvo) r = mid;
        // num é muito pequeno:
        else L = MID + 1;
        // Redefina o meio com nossos novos ponteiros esquerdo e direito.
        MID = (L + R) / 2;
    }
    //-1 indica que o elemento não foi encontrado.
    retornar -1;
}

Para compilar com o GCC: GCC arrlib.c mean.c binsearch.c</s>
