Ir ao conteúdo

C++ Fazer uma função para dois arrays


Ir à solução Resolvido por Ragnarbrody,

Posts recomendados

Postado

Pessoal, estou com uma dúvida, eu preciso fazer um programa em C++ que receba como parametro um array de números inteiros, seu tamanho, calcula a média e retorne esse valor. aqui o enunciado:

 

4-) Reescreva o programa 3-) com uma função que recebe como parâmetros um array de números inteiros, seu tamanho, calcula a média e retorna este valor. Chame esta função duas vezes, uma para cada array, salve os resultados em duas variáveis locais dentro da função main(). Crie uma segunda função que recebe dois números como parâmetro e imprimi no console o maior deles.

 

para melhor entendimento aqui o enunciado 3:

3-) Escreva um programa em C++ que declara dois arrays de números inteiros de tamanho 10 cada um. Preencha os arrays com valores numéricos inteiros quaisquer. Escreva um loop que calcula a média aritmética de cada array, compara os dois resultados e imprimi o maior no console.

 

eu resolvi a atividade 3 mas não sei como faria essa função da atividade 4, alguém pode me ajudar? 

 

desde já agradeço

 

Postado

então, meu código está assim:


#include <iostream>
#include <locale>

using namespace std;

int vetor(int varray[], int tamanho)
{
    int total, i, media;
    for (i = 0; i < tamanho; i++)
    {
        total = total + varray[i];
    }
    media = total / tamanho;
    return media;
}

void maior(int mediaA, int mediaB)
{
    if (mediaA > mediaB)
    {
        cout << "       O Array A, cuja a média é: " << mediaA;
    }
    else
    {
        cout << "       O Array B, cuja a média é: " << mediaB;
    }
}

int main()
{
    setlocale(LC_ALL, "portuguese");
    int vetorA[10], vetorB[10], j, h, mediaA, mediaB;
    cout << endl << "       ==================================";
    cout << endl << "       =                                =";
    cout << endl << "       =  Olá, bem vindo ao Calculador  =";
    cout << endl << "       =       de média dos Arrays      =";
    cout << endl << "       =                                =";
    cout << endl << "       ==================================";
    cout << endl;
    cout << endl << "       Insira aqui os números do 1º Array:" << endl;
    for (j = 0; j<=9; j++)
    {
        cout << endl << "       insira aqui o " << j+1 << "º número:";
        cout << endl << "       >";
        setbuf(stdin, NULL);
        cin >> vetorA[j];
    }
    cout << endl;
    setbuf(stdin, NULL);
    cout << endl << "       Insira aqui os números do 2º Array:" << endl;
    for (h = 0; h<=9; h++)
    {
        cout << endl << "       insira aqui o " << h+1 << "º número:";
        cout << endl << "       >";
        setbuf(stdin, NULL);
        cin >> vetorB[h];
    }
    mediaA = vetor(vetorA, 10);
    mediaB = vetor(vetorB, 10);
    cout << endl << "       a média de A foi: " << mediaA << endl;
    cout << endl << "       a média de B foi: " << mediaB << endl;
}

 

ta dando um erro, não importa se por exemplo, eu coloco todos os números do primeiro array maiores que 300 e os números do segundo array menores que 10, a média dos 2 arrays sempre ficam com números grandes próximos aos do primeiro array, o que pode ser?

@.if

veja a resposta que mandei

Postado
15 horas atrás, Ragnarbrody disse:

Preencha os arrays com valores numéricos inteiros quaisquer

 

Seu enunciado diz isso, mas você começou assim:

 

 

    int vetorA[10], vetorB[10], j, h, mediaA, mediaB;
    cout << endl << "       ==================================";
    cout << endl << "       =                                =";
    cout << endl << "       =  Olá, bem vindo ao Calculador  =";
    cout << endl << "       =       de média dos Arrays      =";
    cout << endl << "       =                                =";
    cout << endl << "       ==================================";
    cout << endl;
    cout << endl << "       Insira aqui os números do 1º Array:" << endl;
    for (j = 0; j<=9; j++)
    {
        cout << endl << "       insira aqui o " << j+1 << "º número:";
        cout << endl << "       >";
        setbuf(stdin, NULL);
        cin >> vetorA[j];
    }
    cout << endl;


....
  

 

E vai fazer com que o infeliz que for usar seu programa --- e você mesmo enquanto testa --- tenha que digitar VINTE números a toa? E um por linha?

 

Para que escrever um programa interativo, e desde o início? Mesmo que fosse para alguém digitar os valores, não comece nunca um programa assim. Só vai perder tempo. Programas interativos não acrescentam nada.

 

 

O programa que escreveu é C e não C++.

 

Em C++ o vetor e seu tamanho fazem parte de uma classe e a média é uma função, um método, da classe. E é muito mais fácil assim: cada vetor já tem seu tamanho e média. Mesmo que sejam 2000 deles e não dois.

void maior(int mediaA, int mediaB)
{
    if (mediaA > mediaB)
    {
        cout << "       O Array A, cuja a média é: " << mediaA;
    }
    else
    {
        cout << "       O Array B, cuja a média é: " << mediaB;
    }
}

 

Isso está errado. O enunciado

 

15 horas atrás, Ragnarbrody disse:

Crie uma segunda função que recebe dois números como parâmetro e imprimi no console o maior deles.

 

E sua função não retorna nadinha...

 

Evite usar acentos em comentários, variáveis ou mesmo na saída. Não vai aprender nada e só dá trabalho. E dependendo do computador onde roda podem sair outras letras se você não controlar o ambiente em que seu programa roda, e você não fez isso.

Postado

Uma alternativa para preencher os vetores é usar a função rand, p.ex,

 

#include <iostream>
#include <ctime>
using namespace std;

float media(int vetor[], int n){
    float total = 0;
    for(int i = 0; i < n; i += 1){
        total += vetor[i];
    }
    return total/n;
}

float maior(float A, float B){
    if(A > B){
        return A;
    }
    return B;
}

int main(){
    int A[10];
    int B[10];
    float mA;
    float mB;
    
    srand(time(0));

    for(int i = 0; i < 10; i += 1){
        A[i] = rand() % 100;
        B[i] = rand() % 100;
    }
    mA = media(A, 10);
    mB = media(B, 10);

    cout << "Maior = " << maior(mA, mB) << endl;
    return 0;
}

 

Postado

Como já foi resolvido, eis um exemplo do que provavelmente se espera num exercício assim em C++ e não em C 

 

class Vetor
{
    public:
    int     tamanho;
    int     array[10];
    double  media;

    void    mostra();
    Vetor(int);
};

int     maior(int,int);

 

Assim cada Vetor tem dentro de si o array, o tamanho e a media. mostra() é o óbvio porque precisaria de alguma forma testar isso e sem saber o que tem dentro fica difícil ;)

 

Uma execução do programa exemplo, que vem a seguir:
 


toninho@DSK-2009:~/projects/dsp$ g++ -o tst -std=c++17 vet.cpp
toninho@DSK-2009:~/projects/dsp$ ./tst
Vetor: 4 71 87 21 60 29 40 35 27 52 
Vetor: 54 23 26 89 45 39 22 94 
Medias: 42.6 e 49
Teste de maior(4,54) = 54

 

O programa em si fica muito simples:
 

int main(void)
{
    srand(211503); // para o gerador de num. aleatorios
    Vetor A(10);
    Vetor B(8);

    A.mostra();
    B.mostra();
    std::cout << "Medias: " << A.media << " e " << B.media << "\n";
    cout << "Teste de maior(" << A.array[0] << "," << B.array[0] <<
        ") = " << maior(A.array[0], B.array[0]) << "\n";
}

 

  • Declarando um vetor A com 10 e outro B com 8 valores. Mostra os valores e a media.
  • Depois testa a função maior() com os primeiros valores dos dois vetores.

Eis o programa "todo": 

 

#include <iostream>
using namespace std;

class Vetor
{
    public:
    int     tamanho;
    int     array[10];
    double  media;

    void    mostra();
    Vetor(int);
};

int     maior(int,int);

int main(void)
{
    srand(211503);
    Vetor A(10);
    Vetor B(8);

    A.mostra();
    B.mostra();
    std::cout << "Medias: " << A.media << " e " << B.media << "\n";
    cout << "Teste de maior(" << A.array[0] << "," << B.array[0] <<
        ") = " << maior(A.array[0], B.array[0]) << "\n";
}

Vetor::Vetor(int tam) : tamanho(tam)
{
    for( int i=0; i<tam; i+=1)
    {
        array[i] = 1 + rand() % 100;
        media += (double) array[i];
    };  // for()
    media = media / tamanho;
}

void     Vetor::mostra()
{
    cout << "Vetor: ";
    for(auto i=0; i<tamanho; i+=1) cout << array[i] << " ";
    cout << endl;
}

int     maior(int a,int b)
{
    if ( a > b ) return a;
    return b;
}

 

Sugiro comparar os programas

Postado

Outra alternativa com class poderia ser assim.

  

#include <iostream>
#include <ctime>
using namespace std;

class Vetor{
    private:
        int tamanho;
        int total;
        int *vetor;
        float mediavt;

    public:
        Vetor(int tamanho);
        ~Vetor();
        float media();
        static float maior(Vetor *A, Vetor *B);
};

Vetor::Vetor(int tamanho){
    this->tamanho = tamanho;
    vetor = new int[tamanho];
    
    for(int i = 0; i < tamanho; i += 1){
        vetor[i] = rand() % 100;
        cout << vetor[i] << endl;
        total += vetor[i];
    }
    mediavt = total/(float)tamanho;
}

Vetor::~Vetor(){
    delete vetor;
}

float Vetor::media(){
    return mediavt;
}

float Vetor::maior(Vetor *A, Vetor *B){
    float mA = A->media();
    float mB = B->media();
    
    if(mA > mB){
        return mA;
    }
    return mB;
}

int main(){
    Vetor *A = new Vetor(10);
    Vetor *B = new Vetor(10);
    
    srand(time(0));
    cout << "Media A = " << A->media() << endl;
    cout << "Media B = " << B->media() << endl;
    cout << "Maior = " << Vetor::maior(A, B) << endl;

    delete A;
    delete B;
    return 0;
}

 

Postado
15 minutos atrás, Midori disse:

Com classe também poderia ser assim,

 

@MidoriPoderia, mas parece muito complicado assim para um exercício para iniciantes. E o resultado está, digamos, inconclusivo ;) . Talvez seja melhor simplificar as coisas e conferir os dados

 

E tem erros...

 

C++ é uma linguagem enorme e complexa. Mas se pode escrever coisas simples e poderosas com facilidade. Em especial usando a biblioteca STL. Mas complicar tanto algo como esse exercício, introduzindo destrutores, dupla alocação dinamica, funções embro estáticas e coisas assim talvez não se justifique. Não se traa de demontrar conhecimento. Vale sim a pena introduzir a simplicidade que o cara ganha ao usar uma classe, colocando o vetor lá dentro e já calculando a média. Assim o estudante ganha uma aproximação do conceito de encapsulamento, por exemplo, e por que C++ existe e porque não é C. E porque pode ser vantagem usar C++ e não C-like só porque compila.

Seis meses depois ele não terá aprendido nada ainda sobre C++.

 

 

Veja o enunciado:
 

22 horas atrás, Ragnarbrody disse:

Crie uma segunda função que recebe dois números como parâmetro e imprimi no console o maior deles

 

Nada sugere que a função faz parte da classe. E deve receber dois números como parâmetro...  Não duas médias ou dois Vetor. Dois números. Só.

 

    static float maior(Vetor *A, Vetor *B);

 

Ela nada tem a ver com a classe e apenas é um item a mais no exercício. E retorna o maior valor de um array que é int[]:
 

    vetor = new int[tamanho];

 

Ou seja, o maior deles é um int e assim porque retornar um float? E porque retornar se o enunciado diz que é para imprimir apenas? No exemplo que eu postei estava também errado porque eu não tinha lido com atenção 😳

 

E porque static? C++ não é java. Que diferença vai fazer? Se vai usar duas instâncias de vetor não vai fazer diferença. Se vai usar dois números int menos ainda. E funções static só podem acessar membros estáticos da classe, e isso é mais uma discussão que não ter a ver com esse nível de problema.

Se quer apenas que maior() tenha acesso às variáveis da classe Vetor declare:

 

    friend float maior(Vetor*,Vetor*);

 

Que existe para isso.

 

Veja a saída do programa:
 

toninho@DSK-2009:~/projects/dsp$ g++ -o mdr -std=c++17 mdr.cpp
toninho@DSK-2009:~/projects/dsp$ ./mdr
Media A = 63.7
Media B = 50.1
Maior = 63.7
toninho@DSK-2009:~/projects/dsp$ 

 

Ninguém sabe o que tinha no vetor e assim não há como saber se está certo ;) ... E como os valores são aletórios nunca vai saber mesmo: você usou um #include de time.h só para inicializar o vetor com valores novos a cada vez que roda o programa. Não há razão para isso em especial em um programa de teste.

 

É muito mais produtivo usar uma constante em srand() como eu mostrei, porque assim pode REPETIR os valores pseudo-aleatórios enquanto está testando o programa, e isso é muito importante, em especial em programas menos triviais do que esse.

 

O costume de usar srand(time(0)) passado a iniciantes que memorizam essa ideia de TER que usar time.h apenas para chamar time() com 0 e colocar na chamada a srand() é mais problema do que solução.

 

new e C++

 

O uso de new em C++ é desencorajado fortemente por todos autores, escolas e empresas desde 2011, juntamente com os loops tipo for(). Isso está ano a ano por exemplo no guia de boas práticas do C++.

 

Ao contrário do C FAQ muitas vezes citado aqui, que é um documento compilado a partir de posts da usenet no final dos anos 90, C++ guidelines é um documento sério com dezenas de páginas e atualizado constantemente.

 

Veja o início do tal documento:

 

image.png.655d2b545cb4988cb67c072612a26a39.png

 

Pois é: escrevo isso no dia 15 desse mesmo ano de 2021.

 

Vendo os nomes dos editores dá pra ver que se trata de algo sério. O prof. Stroustrup é o criador de C++ e Herb Sutter é um dos caras mais ativos do comitê que mantem o C++, sendo autor de um número enorme de mudancas na linguagem, e uma referência para todos que mantêm a linguagem em evolução no comitê ISO.

 

Esse documento lista as tendências em termos de uso da linguagem, escrito e atualizado pelas pessoas do próprio comitê e pelo próprio autor da linguagem.

 

 

De volta ao programa

 

Talvez o simples se quer manter maior() usando duas instâncias de vetor seja declarar maior() como friend em Vetor, mas isso não é uma discussão para um iniciante.

 

C++ não é java e pode ter free-functions, funções que não ficam em nenhuma classe, mas isso também não seria uma discussão aqui. Apenas seguir o enunciado é o mais simples

 

new dentro de uma classe criada com new

 

Esse é um outro nível de desnecessária confusão. 

 

Como as instâncias de Vetor estão sendo declaradas em main() não há razão para declarar um ponteiro para vetor e alocar dinâmicamente:

 

 

int main(){
    Vetor *A = new Vetor(10);
    Vetor *B = new Vetor(10);
    

 

Entenda que de qualquer forma os vetores *A e *B estarão vivos durante todo o seu exemplo. Veja o fim de seu programa:
 

    delete A;
    delete B;
    return 0;
}

 

O exemplo aloca ponteiros para a classe no início de main() e eles vão estar lá até o fim de main(). Não se constrói esse tipo de situação. Na verdade se evita a todo custo.

 

E no construtor de main() o exemplo aloca dinamicamente um int[] para hospedar o vetor de int que não será visto em lugar nenhum.

 

Então o exemplo usa new para alocar duas instâncias da classe Vetor e dentro delas usa new (de novo!) para alocar os elementos do vetor, cujo máximo é de singelos 10 int. É complicado sem razão.

 

E aí precisa inclusive declarar um destrutor. E isso é um exagero para esse tipo de programa. Em geral ao ver um problema desses o estudante nem tem noção do que seja um destrutor ou de uma classe alocada via ponteiro e que aloca memória dentro dela. Sugiro evitar isso.

 

E está errado.

 

Vetor::~Vetor() { delete vetor; }

 

Como foi alocado vetor? Aqui
 

    vetor = new int[tamanho];

 

Então deve usar 

 

Vetor::~Vetor() { delete[] vetor; }

 

E esses colchetes não são uma opção. São a regra. Esse é o caso de um vazamento de memória dos mais comuns para iniciantes. E nada disso seria necessário.

 

E alocar memória dessa maneira de todo modo é desencorajado desde 2011.

 

 

  • Curtir 1
Postado
55 minutos atrás, arfneto disse:

Nada sugere que a função faz parte da classe. E deve receber dois números como parâmetro...  Não duas médias ou dois Vetor. Dois números. Só.

Sim é verdade. Pode ter algumas coisas que não devia estar no meu programa, mas é até bom ler esse tipo de comentário para acrescentar no aprendizado.

 

55 minutos atrás, arfneto disse:

E porque static? C++ não é java. Que diferença vai fazer?

Foi só para ficar no "contexto" da classe mesmo.

 

55 minutos atrás, arfneto disse:

friend float maior(Vetor*,Vetor*);

Neste caso como seria com friend?

 

55 minutos atrás, arfneto disse:

O uso de new em C++ é desencorajado fortemente por todos autores, escolas e empresas desde 2011, juntamente com os loops tipo for(). Isso está ano a ano por exemplo no guia de boas práticas do C++.

Então seria melhor ter feito algo assim? Com passagem de parâmetro por referência quando for necessário passar outra classe como argumento?

 

float Vetor::maior(Vetor &A, Vetor &B)
...
  
int main(){
Vetor A(10);
Vetor B(10);
...

 

Ou é com parâmetros ponteiros mesmo? Para passar assim como argumento: maior(&A, &B);

Postado
1 hora atrás, Midori disse:

 

2 horas atrás, arfneto disse:

E porque static? C++ não é java. Que diferença vai fazer?

Foi só para ficar no "contexto" da classe mesmo.

 

 

Mas entendeu que não funciona assim? Não vai ficar "no contexto" e vai criar outros vários problemas.

 

E faltava o [] no delete no destrutor. E a convenção normal em C++ para um getter, como o caso de media() em seu exemplo, é usar media para o nome da variável na classe, porque o código da classe fica mais legível, e usar getMedia() para a função que "pega" o valor. CLion, o IDE da intellij, gera isso automaticamente se o usuário quiser, por exemplo.

 

1 hora atrás, Midori disse:

Neste caso como seria com friend?

 

Pode ser algo simples como essa classe, a partir de seu exemplo, @Midori 
 

class Vetor
{
    private:
        int     vetor[10];
        float   media;
        int     tamanho;

    public:
        Vetor(int tamanho);
        Vetor() : Vetor(10){};

    public:
        float       getMedia(){ return media; };
        friend int  maior(Vetor*,Vetor*);
        void        mostra();
        void        mostra(string);

};

int     maior(int,int); // isso e o que esta no enunciado

 

Qual a diferença?

 

  • Não há razão para complicar com múltiplas alocações. É um programa para iniciantes.
     
  • Vale a pena iniciar com uma classe e ver as vantagens. Para programar em C não vale a pena usar C++: a linguagem C++ é muito mais complexa e poderosa, mas não vai ganhar nada usando o subconjunto representado por C em C++.
     
  • Nesse caso a declaração de um vetor já preenche o vetor e calcula a média e já tem a função que mostra e tem até uma versão em que pode usar um título na listagem. Uma chance de introduzir polimorfismo: duas funções com o mesmo nome. E pode ter vetores de vários tamanhos sem mexer no programa
     
  • a função maior(int,int) retorna o maior valor entre os dois argumentos, como diz o enunciado.
     
  • a função maior(Vetor*,Vetor*) retorna o maior valor entre os dois vetores, só para ter um resultado. E o compilador sabe qual usar vendo os argumentos que foram passados.
     
  • Como media foi declarada em seu exemplo como private tem a função getMedia() para ler o valor se preciso.  Isso dá uma chance de mostrar o conceito de encapsulamento, essencial em C++ e OOP em geral. E o iniciante pode ver que nada pode zoar com os valores dentro de Vetor que foram marcados como private e isso é bem melhor que ficar olhando no meio do programa enorme onde foi que um valor foi indevidamente alterado. E C não tem essa garantia de jeito nenhum. E não tem o custo também :) 

Eis a saída do exemplo alterado
 

toninho@DSK-2009:~/projects/dsp$ g++ -o mdr -std=c++17 mdr.cpp
toninho@DSK-2009:~/projects/dsp$ ./mdr
Vetor A(10): 84 87 78 16 94 36 87 93 50 22 
Media = 64.70

Media A usando getMedia() = 64.70
Vetor B(5): 63 28 91 60 64 
Media = 61.20

Vetor pV(10): 91 6 40 55 87 70 83 43 65 98 
Media = 63.80

Vetor C[19](10): 39 7 41 5 19 29 89 70 18 18 
Media = 33.50

Teste de maior() com 12 e 33 = Maior entre (12,33) = 33
33
Teste de vetor::maior(A,B) devolve o maior valor entre A e B = 94
toninho@DSK-2009:~/projects/dsp$ 

 

A versão de main() com as alterações:

 

int main(void)
{
    Vetor A(10);
    Vetor B(5);
    Vetor C[20]; // um array de 20 Vetor de 10 int
    Vetor D; // Esse vai ficar com 10 elementos, o padrão.
    unique_ptr<Vetor> pV(new Vetor); // o simples: nao precisa liberar

    srand(210315); // nao nao use time(0)

    cout << fixed << setprecision(2);
    A.mostra("Vetor A");
    cout << "Media A usando getMedia() = " << A.getMedia() << endl;

    B.mostra("Vetor B");

    pV->mostra("Vetor pV");

    C[19].mostra("Vetor C[19]");

    cout << "Teste de maior() com " << 12 << " e " << 33 << 
        " = " << maior(12,33) << endl;
    cout << "Teste de vetor::maior(A,B) devolve o maior valor entre A e B = "
        << maior(&A,&B) << endl;

    return 0;
}

 

Nada de novo, exceto pelas declarações usando o construtor padrão para D (que vai usar 10 elementos)  e declarando um vetor para 20 Vetor em C[20].

 

fixed e setprecision() são coisas comuns para manter a média em decimal com duas casas. Estão em iomanip


E essa é uma opção para new que não precisa de delete, e é o recomendado, porque é simples, seguro e tem custo quase zero:
 

    unique_ptr<Vetor> pV(new Vetor); // o simples: nao precisa liberar

 

É só isso. O compilador resolve a hora de liberar a memória, quase como javascript ou java 

 

O exemplo todo

 

#include <iomanip>
#include <iostream>
#include <limits.h>
#include <memory>
using namespace std;

class Vetor
{
    private:
        int     vetor[10];
        float   media;
        int     tamanho;

    public:
        Vetor(int tamanho);
        Vetor() : Vetor(10){};

    public:
        float       getMedia(){ return media; };
        friend int  maior(Vetor*,Vetor*);
        void        mostra();
        void        mostra(string);

};

int     maior(int,int); // isso e o que esta no enunciado

int main(void)
{
    Vetor A(10);
    Vetor B(5);
    Vetor C[20]; // um array de 20 Vetor de 10 int
    Vetor D; // Esse vai ficar com 10 elementos, o padrão.
    unique_ptr<Vetor> pV(new Vetor); // o simples: nao precisa liberar

    srand(210315); // nao nao use time(0)

    cout << fixed << setprecision(2);
    A.mostra("Vetor A");
    cout << "Media A usando getMedia() = " << A.getMedia() << endl;

    B.mostra("Vetor B");

    pV->mostra("Vetor pV");

    C[19].mostra("Vetor C[19]");

    cout << "Teste de maior() com " << 12 << " e " << 33 << 
        " = " << maior(12,33) << endl;
    cout << "Teste de vetor::maior(A,B) devolve o maior valor entre A e B = "
        << maior(&A,&B) << endl;

    return 0;
}

int maior(int a, int b)
{
    if ( a > b )
    {
        cout << "Maior entre (" << a << "," << b <<
            ") = " << a << "\n";
    return a;
    };  // if()
    cout << "Maior entre (" << a << "," << b <<
            ") = " << b << "\n";
    return b;
};  // maior()

Vetor::Vetor(int tamanho) : tamanho(tamanho) , media(0.)
{
    if ( (tamanho < 0) || (tamanho > 10) ) tamanho = 10;
    for(int i = 0; i < tamanho; i += 1)
    {
        vetor[i] = 1 + rand() % 100;
        media += vetor[i];
    }
    media = media/(float)tamanho;
}

int         maior(Vetor* A, Vetor* B)
{   // esse exemplo retorna o maior valor dos dois vetores
    // maior() eh friend entao tem acesso aos membros todos
    int     maximo = INT_MIN;
    for ( auto i=0;i<A->tamanho;i+=1 ) if (A->vetor[i] > maximo ) maximo = A->vetor[i];
    for ( auto i=0;i<B->tamanho;i+=1 ) if (B->vetor[i] > maximo ) maximo = B->vetor[i];
    return maximo;
}

void     Vetor::mostra()
{
    mostra("Vetor");
}

void     Vetor::mostra(string msg)
{
    cout << msg << "(" << tamanho << "): ";
    for(auto i=0;i<tamanho;i+=1) cout << vetor[i] << " ";
    cout << "\nMedia = " << media << "\n";

    cout << endl;
}

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!