Ir ao conteúdo

Posts recomendados

Postado

No caso eu quero que ele solicite 10 idades e mostre todas >=18. 

#include<stdio.h>
#include<stdlib.h>

int main()

{
    int idade;
    int count;


        for(count=1; count<=10; count++){

               printf("Informe 10 idades para o sistema: \n");
                    scanf("%i", &idade);
                    count++;

                 if (idade>=18){
                       printf("%i", idade);

            }
            }

 return 0;

}

 


 

 

  • Amei 1
Postado

@Thaianny Oliveira   no primeiro código você está incrementando a variável que controla o loop for e assim vai pular de dois em dois , e lerá apenas cinco números , 

scanf("%i", &idade);
/// count++; já incrementada pelo "for" 

e no segundo você colocou um loop "while" dentro do "for" sem necessidade ,  e se que apenas mostrar as idades maior ou igual a 18 então só precisa de uma comparação " if "

 

printf("Informe 10 idades para o sistema:\n");
for(int count=0; count<10; count++)
{
    /// while(count<10)
    /// {
    printf("Informe a %d idade -: ",count+1);
    scanf("%i", &idade);
    /// count++;
    if ( idade >= 18 )
    {
        printf("\n%i Idade -> %d\n\n",count+1, idade);
    }
    /// }
}

e outro modo mais elaborado seria usar um vetor para armazenar todas as idades com um loop "for" indo de zero até enquanto for menor que 10 , e depois outro loop para fazer a comparação e mostrar tais idades ,  e outra coisa também é que o mais comum é começar o loop em zero "0"  pois na linguagem c os vetores se iniciam pela posição zero mesmo , apesar de que não terá erro se começar em " 1 " , mas se assim o fizer vai perder duas posições do vetor,  a primeira e a última posição  , pois essa última posição não estará reservada . 

  • Curtir 1
  • Obrigado 1
Postado
Em 18/04/2024 às 19:27, Thaianny Oliveira disse:

No caso eu quero que ele solicite 10 idades e mostre todas >=18.

Entendo...

 

E será durante o prompt que produz a saída ou não? Neste caso, depois que memoriza ('bufferiza') 10 idades?

 

Teu código-fonte, inspira-me ser durante; ou seja, ler 10 idades, e o seu enunciado não; ou seja, solicitar 10 idade(s).

 

Há diferença entre as ações.

 

 

Concordo👍

Em 18/04/2024 às 20:41, devair1010 disse:

outro modo mais elaborado seria usar um vetor para armazenar

Supostamente, se há vetores no apontamento, então esse é o modo.

  • Curtir 1
  • Obrigado 1
Postado

Portanto,

 

#include <stdio.h> /* Include the header file for input and output */
int main (){
    int sep= 0;
    printf("Informe \"Até\" 10 idades para o sistema:\n");
    for (int count= 1 ; count<=10 ; ) {

         int c= getchar ();
         if ('\n'==c || c==EOF) break;

         ungetc (c,stdin);

         int idade= -1;
         c= scanf("%d",&idade);
         if (idade>=18) {
             printf("%c%d",sep,idade);
             sep= ' ';
         }
         if (idade>=0) ++count;
         if (c!=1) getchar ();
    }
    putchar ('\n');
    return 0;
}

 

Além disso, talvez algum refinamento, aplique-os se julgas necessário, porém, para mim, ele confere com solicitar 10 idades…

 

  • Obrigado 1
Postado

... Já com leitura de 10 idades, assume-se que 10 é uma informação (nem mais, nem menos) — somente 10 satisfaz.

/*
* UM EXEMPLO DE LEITURA (e produz durante)
*/
#include <stdio.h> /* Include the header file for input and output */
#include <stdlib.h>/*     ...memory management and other algorthms */
int main (){
  int idade;
  int count;

  for (count= 1 ; count<=10 ; count++) {
    printf ("%c%s%d%s",'\r',"Entre com ",count,"ª idade: ");
    count-= 1;

    int c= getchar ();
    if (EOF==c) break;
    if ('\n'==c) continue;

    ungetc (c,stdin);

    idade= -1;
    scanf ("%i",&idade);
    if (idade>=0) {
      if (idade>=18) printf ("%i\n",idade);
      count++;
      }
    while (EOF!=(c= getchar ()) && '\n'!=c);
    }
  putchar ('\n');
  return 0;
  }

 

Aqui, diferentemente, a [Enter] não encerra suas 10 leituras.

E repeito, se consegue refinar alguma coisa, então, faça-o. Para mim, ele já confere com 10 leituras.

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