Ir para conteúdo
Fórum Script Brasil
  • 0

Exercicio de Vetor em C...


Josias Barreiros

Pergunta

   Ola!
Estou tentando resolver um problema do exercício da Faculdade, porem estou com um empecilho no qual não consigo imaginar como fazer e gostaria da ajuda para me dar um norte de como fazer a seguinte questão:

Crie um vetor com 100 posições e armazenar valores aleatórios. Mostre todos os valores armazenados usando a tabulação ( \t ). Identifique e mostre o maior valor gerado e sua posição no vetor. Dica: inicialize uma variável com um valor muito pequeno e teste se cada elemento do vetor é maior que esse valor, se for a variável passará a assumir o maior valor.

Minha duvida é no que esta em negrito.
Ate agora meu algoritmo ficou assim:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
    int indice=0;
    int vetor[100];
    srand (time(NULL));
    while(indice<100){
        
        printf("Vetor[%d]=%d\t",indice,rand() %100);
        indice++;
    }
    
    return 0;
}

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
    int indice=0;
    int numero_maior=0;
    int indice_maior=0;
    int vetor[100];
    srand (time(NULL));
    while(indice<100){
        vetor[indice] = rand() %100;
        if (vetor[indice] > maior) {
        	numero_maior = vetor[indice];
        	indice_maior = indice;
        }
        printf("Vetor[%d]=%d\n",indice,vetor[indice]);
        indice++;
    }
    printf("O maior número é %d e o seu índice é %d\n", numero_maior, indice_maior);
    
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, @Leonardo Persan Faltou você inicializar a variável numero_maior com um elemento do vetor para depois poder fazer as comparações. Seria isso:

numero_maior = vetor[0];
// Aí sim...
while ...

Sem atribuir a essa variável numero_maior o valor de um vetor não vai fazer as comparações de maneira adequada com os demais elementos do vetor

Para esse exercício pode não ser tão necessário, mas na maioria dos casos é 😉

Editado por Visitante
Link para o comentário
Compartilhar em outros sites

  • 0

Eu entendi que, o índice do maior número no vetor é tudo que precisamos.

 

...
int maior= 0;
int atual= veto_tamanho;

while( 0 <-- atual )if( vetor[ maior ] < vetor[ atual ] )maior= atual;
...
printf( "O maior número é %d e o seu índice é %d\n", vetor[ maior ], maior );

 é so mais uma forma de se obter o resultado, nada mais 

Editado por britivaldo
Link para o comentário
Compartilhar em outros sites

  • 0

Olá @Leonardo Persan  Ainda acho que tem vantagens em se comparar elementos do vetor com outros elementos do vetor, e não com 0

Não sei dizer até que ponto estou certo nisso, mas veja esse exemplo:

#include <stdio.h>

int main(void) {

    int vet[] = { 32, 4, 5, 7, 15};
    int maior, i;

    maior = vet[0];
    for (i = 1; i < sizeof(vet) / sizeof(int); i++) {
        if (vet[i] > maior) maior = vet[i];
    }

    printf("\nMaior: %d\n", maior);

    return 0;
}

Fazendo dessa forma é possível economizar uma iteração do for, e isso já me parece ser vantajoso em C ou em qualquer linguagem de programação, quando buscamos uma menor quantidade de processamento possível

É nesse ponto que estou me referindo

Desculpa estar insistindo nesse ponto, meu interesse é unicamente o de aprender 😉 

Editado por Visitante
Atualizar comentário
Link para o comentário
Compartilhar em outros sites

  • 0
15 horas atrás, giu_d_ disse:

Desculpa estar insistindo nesse ponto, meu interesse é unicamente o de aprender 😉  

Imagina, discussões assim são boas para todo mundo rsrsrs

Mas no seu código você já tem predefinido os valores do vetor, quando na verdade o código dele precisa que os valores sejam criados dinamicamente.

Em 17/11/2018 em 11:17, britivaldo disse:

Eu entendi que, o índice do maior número no vetor é tudo que precisamos.

Tem razão, economiza memória e processo

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...