Seja muito bem vindo à aula de número 101 do nosso curso gratuito de programação com a linguagem C.
Toda operação sobre um vetor exige que todo o vetor seja percorrido, como vimos na aula anterior para imprimir o conteúdo de um vetor na tela. Nesta aula vamos ver como preencher um vetor lendo dados a partir do teclado e para isso também precisamos percorrer todo o vetor.
Como já vimos no início do curso, para ler um número inteiro do teclado basta pedir que o usuário digite este número e então fazer a leitura do mesmo, assim:
int valor; printf("Digite um valor: "); scanf("%d", &valor);
Para preencher um vetor é exatamente da mesma forma. A única diferença é que precisamos indicar, entre colchetes, em qual posição do vetor o valor lido será salvo. Para ler um único valor e salvar na primeira posição do vetor podemos fazer assim:
int vetor[10]; printf("Digite um valor: "); scanf("%d", &vetor[0]); // salva o número digitado na primeira posição do vetor.
Agora, se desejamos ler um segundo valor e salvar na segunda posição, podemos fazer assim:
printf("Digite um valor: "); scanf("%d", &vetor[1]); // salva o número digitado na segunda posição do vetor.
Como você já deve ter imaginado, ler um a um dessa forma não é eficiente. Como precisamos dizer a posição onde o valor lido será salvo, podemos então escrever um PARA iniciando em 0 até o tamanho do vetor – 1 e fazer a leitura dos valores dentro da repetição, assim:
int i, vetor[10]; for(i = 0; i < 10; i++){ printf("Digite um valor: "); scanf("%d", &vetor[i]); // salva o número digitado na posição i do vetor }
Como a variável i representa o índice do vetor (a posição onde o elemento será salvo), podemos informar ao usuário o índice do elemento que está sendo inserido, assim:
int i, vetor[10]; for(i = 0; i < 10; i++){ printf("Digite o valor do indice %d: ", i); scanf("%d", &vetor[i]); // salva o número digitado na posição i do vetor }
Dessa forma o usuário sabe exatamente em qual posição do vetor está sendo inserido cada valor por ele digitado.
Código completo
#include <stdio.h> #include <stdlib.h> int main() { int i; int num2[10]; for(i = 0; i < 10; i++){ // preenche o vetor lendo do teclado printf("Digite o elemento da posicao %d: ", i); scanf("%d", &num2[i]); } printf("\n\n"); for(i = 0; i < 10; i++) // imprime o vetor printf("%d ", num2[i]); printf("\n\n"); return 0; }