Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Dúvida sobre vetor

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Dúvida sobre vetor

    Boa noite,

    peguei esse código no google para o método de ordenação seleção direta:

    Código:
    int main()
    {
       // Definição das variáveis básicas
       int i, j, aux, menor, trocas, tamanho=10;
       int vetor[tamanho];
     
       // Inicializa a variavel trocas
       trocas = 0;
     
       // Preenchimento e exibição do vetor com valores aleatorios entre 0 e 1000
       srand(time(0));
       printf("\nVetor original\n");
       for(i=0;i<tamanho;i++)
          {
          vetor[i]=rand()%1000;
          printf("Elemento %2d: %3d\n",i+1,vetor[i]);
            }
        
       // Ordenacao pelo metodo da seleção direta
       for(i=0;i<tamanho-1;i++)
          {
          menor = i;
          for(j=i+1;j<tamanho;j++)
             {
             if(vetor[j] < vetor[menor]) menor = j;
             }
          aux = vetor[i];
          vetor[i] = vetor[menor];
          vetor[menor] = aux;
          trocas++;
          }
     
       // Mostra vetor ordenado
       printf("\nVetor ordenado:\n");
       for(i=0;i<tamanho;i++) printf("Elemento %2d: %3d\n",i+1,vetor[i]);
       printf("\nTrocas efetuadas: %2d\n",trocas);   
       system("pause");
    }
    o que não entendo a princípio é por qual motivo o tamanho subtrai 1.
    for(i=0;i<tamanho-1;i++)

    o "i" vai de 0 a 8. Então ele não pega todo o vetor. A lógica é substituir o valor por outro menor. Não entendi esse tamanho-1 mesmo. Alguém sabe me explicar? Obrigado!

  • Font Size
    #2
    Gin Uchiha,

    na verdade, tamanho está valendo 10, e a condição do for subtrai 1 de 10...
    Então, o laço corre de 0 a 9 nesse caso, porque por mais que o vetor tenha 10 posições, como ele começa no 0, ele vai de 0 a 9. Se você for tentar acessar a posição 10 do vetor, ele vai dar erro.
    Assembly, C, C++, C#, HTML/XHTML, Java SE, Java EE, JavaScript, Perl, Python, SQL.

    "If you give a hacker a new toy, the first thing he'll do is take it apart to figure out how it works." - Jamie Zawinski

    Comment

    X
    Working...
    X