Ir ao conteúdo
  • Cadastre-se

C questão de vetor em c


GABRIELSANTOS98

Posts recomendados

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

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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