Ir para conteúdo

POWERED BY:

Arquivado

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

Elis Regina

[Resolvido] Exibir os numeros de um vetor

Recommended Posts

Olá galera!

Estou estudando a linguagem C faz pouco tempo. No momento os vetores me afligem. Fiz um programa que pede para o usuário digitar 3 numeros e depois esses numeros deveriam ser exibidos na tela, porém não funciona e eu não sei o porque. Se alguem puder me ajudar ficarei muito grata!!

 

Um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compara aí o que ta errado. Abrss.

#include <stdio.h>

int main()
{
  int vetor[3], i;
  printf("Digite 3 numeros:\n");
  for(i=0;i<3;i++)
  {
  scanf("%i",&vetor[i]);
  }
  for(i=0;i<3;i++)
  {
  printf("%d\n", vetor[i]);
  }
  system("pause");
  return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kloster, muito obrigada mesmo!!! Consegui compilar direitinho. no outro post eu tinha eskecido de colar meu codigo. Mas eu tinha feito assim:

 

#include <stdio.h>
int main()
{
	int vetor[3], i;

	 for(i=0;i<3;i++)	  \\analisar se eram tres numeros
   {
	printf("Digite 3 numeros: \n");
	scanf("%d",&vetor[i]); \\Guardar os valores digitados na variavel vetor[i]\\
   }
		
	  printf("%d", vetor[i]);\\ e exibi-los\\
	 
  system("pause");
  return 0;
}

você poderia me explicar, porque não dá certo?? :) Sei que está errado, mas não sei o que é.

mas uma vez muitissimo obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

O printf que exibe os números está for do loop. EWntão, não mostra o vetor todo.

 

ALém disso, o valor de i no último printf não existe no vetor.

Teste e veja:

#include <stdio.h>

int main()
{
int vetor[3], i;

for(i=0;i<3;i++)
{
printf("Digite 3 numeros: \n");
scanf("%d",&vetor[i]); 
}

printf("Valor de i: %d | %d\n", i, vetor[i]);


return 0;
}

i fica com valor 3, sendo que só existem os índices 0, 1 e 2.

A posição vetor[3] contém lixo da memória.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigada Beraldo! Entendi o que você disse sobre o printf. Por curiosidade eu compilei o que você enviou e no meu PC deu errado, mas tudo bem. Eu estava tentando daquele jeito e não como o Kloster postou, pq meu prof de prog. disse que o scanf deve vir seguido do printf e por isso queria saber porque o meu deu errado...hunf!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por curiosidade eu compilei o que você enviou e no meu PC deu errado, mas tudo bem.

Qual foi o erro?

 

Eu estava tentando daquele jeito e não como o Kloster postou, pq meu prof de prog. disse que o scanf deve vir seguido do printf e por isso queria saber porque o meu deu errado...hunf!

Scanf() não precisa, necessariam,ente, vir aspós o printf.

Pode fazer o programa sem printf() e verá que funciona.

O mais correto seria colocar esta parte fora do loop:

printf("Digite 3 numeros: \n");

Isso mostraria essa frase apenas uma vez.

 

Ficaria assim:

printf("Digite 3 numeros: \n");
for(i=0;i<3;i++)
{
	scanf("%d",&vetor[i]);
}

Pode até retirar esse printf.

printf e scanf não dependentes, logo, o que o seu professor disse não é obrigatório; apenas deixa o programa user friendly. :)

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.