Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberto Silva Santos

[Resolvido]  com UNSIGNED LONG

Recommended Posts

Amigos estou com um pequeno probleminha neste algoritmo ñ esta dando certo para apresentar os numeros de 1 ate 1000 do jeito que coloquei no algoritmo só apresenta do 701 ate o 1000, como corrigir isto???

# include <stdio.h>
# include <conio.h>
main()
{
	  unsigned long int x[1000];
	  unsigned long int i;
	  printf ("Apresentando os numeros de 1 a 1000: ");
	  for (i=1; i<=1000; i++)
	  {
		  x[i]=i;
	  printf ("\n%d",x[i]);
	  }
	  getch();
	  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom aki no mew compilador c eu colocar assim naum da pra ver o inicio :P, coloquei de 1 até 10 e rodou normal!

caso ai de errado para exibir tente assim printf("%lu",x);

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quandi você faz:

unsigned long int x[1000]

Você está alocando 1000 longint's na memória, que tem o inicio no ponteiro x.

Mas a alocação começa no índice [0].

 

Faz o for de 0 a < 1000. [0..999]

Acho que você está tentando escrever numa área não alocada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu QuiitZaumm agora que percebi que de 1 ate 1000 ñ aparece todos os numeros e ñ que o codigo esta errado

printf ("%d",x[i]);
só tirei o \n resolveu o problema, pena que ficou tudo junto, mas valeu

 

 

E spym4n em questão do for ser do 1 ate <=1000 ou de 0 ate <1000 da nada ñ, sempre será alocado 1000 longint's na memória, mas valeu tb

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu QuiitZaumm agora que percebi que de 1 ate 1000 ñ aparece todos os numeros e ñ que o codigo esta errado

printf ("%d",x[i]);
só tirei o \n resolveu o problema, pena que ficou tudo junto, mas valeu

 

 

E spym4n em questão do for ser do 1 ate <=1000 ou de 0 ate <1000 da nada ñ, sempre será alocado 1000 longint's na memória, mas valeu tb

Se você alocar 1000 longints vai alocar os 1000 longints mas partindo do 0 na array.

Portanto, se você tentar acessar o índice 1000, vai acessar seções da memória que não deveria (overflow).

Não sei se seu compilador corrige esse 'problema' para você, mas o meu não :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.