Ir ao conteúdo

Posts recomendados

Postado

Ler um vetor de até 20 elementos. A leitura deverá ser executada até que o vetor fique totalmente preenchido ou seja informado um valor negativo ou zero. Ler 2 valores que representam 2 posições (índices) no vetor (aceitar apenas índices válidos), escrever os valores nas posições entre estes índices (inclusive).

 

Estou com dificuldade de fazer a saída deste exercício(citado a cima), segue a baixo o desenvolvimento do meu código:

#include<stdio.h>

int main() {
	
	int vet[10], soma, i, pos;
	
	printf("Digite os valores para o vetor: \n");
	
    for (i = 0; i < 10; i++) {
		printf("[%d]: ", i);
		scanf("%d", &vet[i]);
		
		if(vet[i]<=0){
			pos=i;
			break;
		}
    }
    


    

Postado

Boa noite. A saída seria os valores entre esses índices. Então, se o usuário te der var_1 = 5 e var_2 = 7

você precisa fazer 

for(i=var_1; i<=var_2; i++) printf("%d", vet[i]);

Vai printar os valores da posição 5 6 e 7 

 

Vale colocar que:

O vetor pode ter 20 elementos, você só colocou 10;

Como você quer ler os valores até ser digitado 0 ou chegar no tamanho máximo, recomendo a utilização do while

 

 

  • Curtir 1
Postado

Se o enunciado pede que comunique com o usuário com mensagem do tipo Digitar/Entrar com x números, nós escrevemos.  Quando enuncia Leia ou Ler, escreve-se mensagem apenas de resposta ou resultado ou retorno, ou

saída e de entrada é facultativo.

 

E esse é o caso:

5 horas atrás, Helio Junnior Sartor Dalmolin disse:

Ler um vetor de até 20 elementos

 

é só ler, não é Digitar ou Entrar, então sem mensagem na categoria de

5 horas atrás, Helio Junnior Sartor Dalmolin disse:

"Digite os valores para o vetor: \n"

Apenas deixe o programa esperando os dados, sem avisar, e depois copie os 20 números e em seguida cole no prompt.

 

A alternativa é redirecionar o fluxo de entrada por linha de comando usando a combinação:

nome_do_programa < numeros_do_teste.dat

 

Ilustração

image.png.0f50ac1ce2b33cc66b9e592b96cd3d7d.png

 

É um programa que lê e imprime os números até o fim da lista depois encerra. Encerra porque quando a função encontra o fim do fluxo (fim do arquivo) o valor em número é 0 terminado o laço.

#include <stdio.h>
int main( ){
        int numero = 0;
        while (scanf( "%d", &numero ),  numero != 0 ) {
                printf( "%d ", numero );
                numero = 0;
        }
        return 0;
}

 

Essa lista:

65 96 15 10 26 15 69 25 59 62 04 21 74 21 71 68 53 50 67 31 94 51 30 63 79 53 76 13 72 34 85 68 34 72 47 24 31 25 55

Indiretamente isso ajuda a entender melhor sua entrada de dados.

 

 

 

Vejamos:

5 horas atrás, Helio Junnior Sartor Dalmolin disse:

A leitura deverá ser executada até que o vetor fique totalmente preenchido ou seja informado um valor negativo ou zero.

Precisa de um contador para saber quantos números já pegou e não está além da capacidade do vetor e verificar também se valor em número é menor que 1 (negativo ou zero) então se pelo menos um desses casos se confirmar o ‘loop’ WHILE é interrompido.

[:)]

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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