Ir ao conteúdo
  • Cadastre-se

C++ Crie um programa em C++ vetores


lola635

Posts recomendados

1)Crie um programa em C++ que receba um vetor de 20 número e depois imprima de trás pra frente.

Sua resposta

#include <iostream>
using namespace std;
 
 int main (){
     
     int vetor [21];
     int i;
     vetor[0]=38;
     vetor[1]=15;
     vetor[2]=98;
     vetor[3]=5;
     vetor[4]=4;
     vetor[5]=33;
     vetor[6]=1;
     vetor[7]=7;
     vetor[8]=44;
     vetor[9]=10;
     vetor[10]=13;
     vetor[11]=81;
     vetor[12]=0;
     vetor[13]=27;
     vetor[14]=41;
     vetor[15]=31;
     vetor[16]=21;
     vetor[17]=11;
     vetor[18]=22;
     vetor[19]=23;
     vetor[20]=32;
    
     for (i=0; i<21; i++){
     cout<< vetor[i]<<"\n";
     }
    

2)Dado um vetor com 10 números reais, faça um programa que percorra o vetor e imprima o seu menor elemento.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

50 minutos atrás, lola635 disse:

     for (i=0; i<21; i++){
     cout<< vetor[i]<<"\n";
     }

Para imprimir de trás para frente, é só inverter esse "for", assim:

 for (i=21; i>0; i--){
     cout<< vetor[i]<<"\n";
     }

Pronto, questão 1 resolvida. 

Mas, tenho sugestões. 

Hmm

Citação

 vetor[0]=38;
     vetor[1]=15;
     vetor[2]=98;
     vetor[3]=5;
     vetor[4]=4;
     vetor[5]=33;
     vetor[6]=1;
     vetor[7]=7;
     vetor[8]=44;
     vetor[9]=10;
     vetor[10]=13;
     vetor[11]=81;
     vetor[12]=0;
     vetor[13]=27;
     vetor[14]=41;
     vetor[15]=31;
     vetor[16]=21;
     vetor[17]=11;
     vetor[18]=22;
     vetor[19]=23;
     vetor[20]=32;

Você poderia ter colocado tudo isso dentro de um "for", não? E também é interessante gerar os números de forma aleatória, para ter menos trabalho.

Fazendo algo assim, utilizando o "rand", mas simplesmente usar o rand, ele vai ficar gerando o mesmo valor, para ele gerar valores aleatórios, precisamos de uma semente. A semente, pode ser a hora do computador, para isso, use a função srand(), também precisamos da biblioteca "time.h", e retornar a hora do computador "time(null)". 

Ficando assim: 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>  //biblioteca que precisamos

int main() {

    int i;
    int num2[20];

    srand(time(NULL)); //carinha que pega o tempo do computador

    for(i = 0; i < 20; i++)
        num2[i] = rand(); //carinha que recebe eles

    printf("\n\n");
    for(i = 20; i > 0; i--)
        printf("%d ", num2[i]); //carinha que imprime eles
    printf("\n\n"); 

    return 0;
}

Bem mais limpo, não acha? Pronto, assim ele resolve a sua primeira questão, de forma mais simples, ou não. 

50 minutos atrás, lola635 disse:

2)Dado um vetor com 10 números reais, faça um programa que percorra o vetor e imprima o seu menor elemento.

E sobre essa, teria alguma dúvida em específico? Só uma sugestão, mas, você pode usar um "if" dentro do "for". 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@lola635     Esse código que você postou é todo da linguagem  c e como  você postou esse enunciado no tópico de LinguaGem  C++  ,    poderia ser assim :

ao criar o vetor já inserir os números nele , e escrever de trás para frente é começar do último elemento , que nesse caso está na posição 19 do vetor e vai até zero  

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <iomanip>
#include <algorithm>          
using namespace std;

int main()
{
    vector < int > meu_vetor = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
    int i=0;

/*  vetor[0] = 38;
    vetor[1] = 15;
    vetor[2] = 98;
    vetor[3] = 5;   //  esse bloco  comentado aqui , 
    vetor[4] = 4;   // funciona também , mas dará muito trabalho braçal 
    vetor[5] = 33;
    vetor[6] = 1;
    vetor[7] = 7;
    vetor[8] = 44;
    vetor[9] = 10;
    vetor[10] = 13;
    vetor[11] = 81;
    vetor[12] = 0;
    vetor[13] = 27;
    vetor[14] = 41;
    vetor[15] = 31;
    vetor[16] = 21;
    vetor[17] = 11;
    vetor[18] = 22;
    vetor[19] = 23;
    vetor[20] = 32;
*/
    cout << "\n\n" << endl;
    for (i = 19; i >= 0; i--) 
        cout << ' ' << meu_vetor[i];
    cout << "\n\n" << endl;
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

3 horas atrás, Matheus Dutra disse:

Fazendo algo assim, utilizando o "rand", mas simplesmente usar o rand, ele vai ficar gerando o mesmo valor, para ele gerar valores aleatórios, precisamos de uma semente. A semente, pode ser a hora do computador, para isso, use a função srand(), também precisamos da biblioteca "time.h", e retornar a hora do computador "time(null)". 

 

Não é bem assim. rand() não vai ficar "gerando o mesmo valor".  e srand() também não precisa de time e mesmo o seu uso é opcional. E também não precisa se  chamar time com NULL.

 

Em geral quando se está testando um programa ou gerando dados para algum teste objetivo o que se quer é o contrário: usar srand() exatamente para poder reproduzir a mesma sequência --- aleatória --- a cada teste. Esse é o princípio de um teste afinal. E aí se usa srand() apenas uma vez, no inicio, com um valor conhecido. Um inteiro qualquer, como 211214 ou 32. 

 

Porque? Simples: se seu programa vai preencher um vetor de estruturas com 100.000 delas por exemplo, e a partir daí vai gerar valores e comparações, e é isso o objetivo do programa, você vai querer testar SEMPRE com a mesma sequência, para poder ir comparando seu algoritmo e o desempenho.

 

Quando usar time(NULL), que traz a hora, ou outra sequência desse tipo? Quando por exemplo em um game --- que já foi testado --- você quer partir de uma nova configuração. Mas em programas que estão sendo testados quase nunca é isso que se quer. E quase sempre é o que se usa por uma deficiência na maneira como explicam isso.

 

É super comum programas incluírem srand(time())  quando está claro que se devia usar uma constante. E em alguns casos ainda muitas vezes o programa chama srand() entre CADA chamada de rand().

  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

@lola635     essa segunda Questão ,    para encontrar o menor número e escrever ele , creio que seja esse mesmo o único modo , pegando o primeiro elemento do vetor comparando com os resyantes ,  e para isso ousar o comando for  para percorrer todos os números no vetor e o  comando  if  para comparar eles ,  

Link para o comentário
Compartilhar em outros sites

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...