Ir ao conteúdo

Posts recomendados

Postado

Pessoal, é o seguinte fiz uma prova de algoritmos, em C.

 

Uma questão mostrava um código semelhante a esse no caso com uma estrutura semelhante a essa não igual, eu tinha que descobrir qual o valor que o i terminaria, no caso a posição dele.

Eu automaticamente pensei que como só existem 10 espaços no vetor, e sempre acrescenta +1 na repetição o numero final seria 10, fiz o mesmo no CodeBlocks e  deu até a posição 10.

 

Problema é quando entreguei a prova(todos ja tinham entregado) eu perguntei está certa professor? ele disse que não estava ele disse que o valor final seria 11. Me surgiu essa dúvida gigantesca creio que vou ser reprovado por causa desse erro.

 

Mas queria saber tem como a repetição exceder o numero de espaços disponíveis no vetor??

 

Código:

 

#include<stdio.h>
#include<stdlib.h>
int main(){
int i;
int vetor[9];
for( i = 1; i<=10; i++){
    printf("Posição %d\n", i);
    }
}


 

  • Curtir 1
Postado

Bom dia @Sérgio Manoel !

Esta questão é daquelas em que a resposta parece obvia; Uma casquinha de banana esperando por você e daí tu escorregasse direitinho.
 

8 horas atrás, Sérgio Manoel disse:

Mas queria saber tem como a repetição exceder o numero de espaços disponíveis no vetor??

 

Sim, o indexador (neste caso a variável i) pode exceder o número de espaços reservado pelo vetor; A este fenômeno, se dar o apelido em inglês "Over bound". E apenas por implementação é possível garantir que "Over Bound" não aconteça.

 

Para implementação da questão, posso dizer que:

( i = 1; i<=10; i++) <-> i vai assumir := os valores menores que 10 e igual 10, implica dizer que vai acontecer uma última repetição quando i := 10, quando i := 11, ela não mais satisfará a condição de existência e o laço FOR fecha com valor 11.

Visitante
Este tópico está impedido de receber novas respostas.

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