Ir ao conteúdo

Posts recomendados

Postado

Alguém pode me ajudar a entender a lógica desta questão?

Não estou conseguindo fazer essa entrada condicionada!!

 

Questão

 

Dado um vetor V de tamanho N e um inteiro K, contabilize quantos elementos de V são maiores ou
iguais ao inteiro K.
Entrada
O programa terá apenas um caso de teste. O programa deve ler, obrigatoriamente, um número N que
pertença ao intervalo 1 N 1000. Se N lido não for válido, o programa deve fazer uma nova leitura de N.
Caso N seja válido, N representa o tamanho do vetor V. Na próxima linha há N números inteiros separados
por um espaço em branco cada, representando cada elemento do vetor V. E finalmente, na última linha há
um inteiro K.
Saída
Seu programa gera apenas uma linha de saída contendo um número inteiro representando quantos elementos
do vetor V são maiores ou iguais ao inteiro K. Após a impressão do valor quebre uma linha.
Exemplo
Entrada
0
-3
4
1 2 3 4
0
Saída
4
Entrada
10
1 2 3 4 5 6 7 8 9 10
5
Saída
6
Entrada
10
1 2 3 4 5 6 7 8 9 10
20
Saída
0
Entrada
1
2
3
Saída
0
Entrada
4
1 4 6 4
4
Saída
3
4

Postado
31 minutos atrás, GABRIELSANTOS98 disse:

O programa deve ler, obrigatoriamente, um número N que
pertença ao intervalo 1 N 1000. Se N lido não for válido, o programa deve fazer uma nova leitura de N.
Caso N seja válido, N representa o tamanho do vetor V.

 

O correto é você postar o que já fez, para que nós façamos a correção e auxiliamos na resolução. Mas observe:

 

No início do programa, declare o vetor desse jeito:

int vetor[n];

 

Faça a leitura em uma variável auxiliar, e coloque um if verificando se é ou não um valor válido, caso seja, n receberá o valor de aux. Caso contrário, a leitura deverá ser feita novamente... Ou seja, você pode resolver com um laço..

while(valido == 0){
  scanf("%d",&aux);
  if(aux >= 1 && aux <= 1000){
    n = aux;
    valido = 1; //Dessa forma, o while será interrompido, pois a leitura foi válida.
  }
  else //Este pode ser retirado, pois caso ele não passe pelo if, o laço será percorrido novamente, ou seja, lerá aux de novo.
    scanf("%d",&aux);
}

Este bloco pode ser simplificado ainda mais, estude-o atentamente e verá que é possível resolver com 5 linhas de código ou menos.

 

 

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!