Ir para conteúdo

Foto

Ajuda, não estou conseguindo terminar o algoritmo.


  • Por favor, faça o login para responder
7 respostas neste tópico

#1
Esfera

Esfera

    Membro

  • Membro
  • PipPip
  • 76 posts
Pessoal é isso ai, quem puder me ajudar a terminar eu agradeço...
não tou conseguindo fazer ele funcionar direito.. alguém pode me ajudar?

int main()
{

int inscricao, idade;
char sexo, experiencia;
float num_masc, idade_homens_exp, num_homens_mais45, num_fem, num_mulheres_menos35, menor_idade_mulher_experiencia;

printf ("Digite o numero de inscricao:\n",inscricao);
printf ("Digite a idade:\n",idade);
printf ("Digite seu sexo M (masculino) F (feminino):\n",sexo);
printf ("Digite sua experiencia:\n",experiencia);

scanf("%d %d %c %c", &inscricao, &idade, &sexo, &experiencia);
while (inscricao > 0) {
if (sexo == 'M') {
num_masc++;
if (experiencia == 'S')
idade_homens_exp += idade;
if (idade > 45)
num_homens_mais45++;
} else {
num_fem++;
if (idade < 35)
num_mulheres_menos35++;
if (menor_idade_mulher_experiencia < idade)
menor_idade_mulher_experiencia = idade;
}
scanf("%d %d %c %c", &inscricao, &idade, &sexo, &experiencia);
}
/* imprima aqui o que foi pedido */
printf ("A- numero de candidatos do sexo feminino é: %c\n",&sexo);

/*ai em cima só foi um exemplo do jeito que eu tava fazendo*/
system ("pause");
return (0);

}



não tou conseguindo imprimir...

#2
Elias Pereira

Elias Pereira

    Assistente

  • Assistente
  • 4.850 posts
  • Sexo:Masculino

Pessoal é isso ai, quem puder me ajudar a terminar eu agradeço...
não tou conseguindo fazer ele funcionar direito.. alguém pode me ajudar?

Primeiramente me diga o que você quer que seja impresso na tela com esse algoritmo?

st-c.jpg

> Não ajudo por MP. Para isso tem o fórum.
> Favor, não abandone seu tópico! Respeite quem lhe ajuda!
"Sabemos que todas as coisas cooperam para o bem daqueles que amam a Deus, daqueles que são chamados segundo o seu propósito." (Romanos 8:28)


#3
ofernandofilo

ofernandofilo

    Membro

  • Membro
  • PipPip
  • 100 posts
C tem um pequeno problema, dependemos do compilador.

Informe o compilador que está usando.

(...)

Essa utilização sua de Printfs separado de Scanf, não me parece muito interessante.

E tente usar a tag CODE quando mandar um código, identação é importante.

#include <stdio.h>
int main(){
  int i;
  return(0);
}

abraços

Editado por ofernandofilo, 03 outubro 2011 - 11:35.


#4
Esfera

Esfera

    Membro

  • Membro
  • PipPip
  • 76 posts
Pessoal, é o seguinte, a questão é a seguinte!!!


Questão:


Uma empresa decidiu fazer um levantamento em relação aos candidatos que se apresentarem para preenchimento de vagas no seu quadro de funcionários, utilizando o processamento eletrônico. Fazer um programa que:

- Leia um conjunto de dados para cada candidato contendo número de inscrição, idade, sexo (M ou F), experiência no serviço (Sim ou Não).

-Calcule e Imprima:
A- número de candidatos do sexo feminino
B- número de candidatos do sexo masculino
C- idade média dos homens que já tem experiência no serviço
D- porcentagem de homens com mais de 45 anos entre o total de homens
E- número de mulheres com idade inferior a 35 anos e com experiência no serviço
F- menor idade entre as mulheres que já tem experiência no serviço


Eu não to conseguindo fazer ele funcionar direito.. mas eu acho que é só porcausa do imprima que estou fazendo algo errado, segue o algoritmo que eu fiz.

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

int main()
{
    
  int inscricao, idade; 
  char sexo, experiencia;  
  float num_masc, idade_homens_exp, num_homens_mais45, num_fem, num_mulheres_menos35, menor_idade_mulher_experiencia; 
  
printf ("Digite o numero de inscricao:\n");
printf ("Digite a idade:\n");
printf ("Digite seu sexo M (masculino) F (feminino):\n");
printf ("Digite sua experiencia:\n");
        
 scanf("%d %d %c %c", &inscricao, &idade, &sexo, &experiencia);
 while (inscricao > 0) {
 if (sexo == 'M') {
 num_masc++;
 if (experiencia == 'S')
 idade_homens_exp += idade;
 if (idade > 45)
 num_homens_mais45++;
 } else {
 num_fem++;
 if (idade < 35)
 num_mulheres_menos35++;
 if (menor_idade_mulher_experiencia < idade)
 menor_idade_mulher_experiencia = idade;
 }
 scanf("%d %d %c %c", &inscricao, &idade, &sexo, &experiencia);
 } 
 /* imprima aqui o que foi pedido */
 printf ("A- numero de candidatos do sexo masculino é: %f\n",num_masc);
 printf ("B- numero de candidatos do sexo feminino é: %f\n",num_fem);
 printf ("C- idade media dos homens que ja tem experiencia no servico é: %f\n",idade_homens_exp);
 printf ("D- porcentagem de homens com mais de 45 anos entre o total de homens é: %f\n",num_homens_mais45);
 printf ("E- numero de mulheres com idade inferior a 35 anos e com experiencia no servico é: %f\n", num_mulheres_menos35);
 printf ("F- menor idade entre as mulheres que ja tem experiencia no servico é: %f\n",menor_idade_mulher_experiencia);
 scanf("%f %f %f %f %f %f", &num_masc, &num_fem, &idade_homens_exp, &um_homens_mais45, &num_mulheres_menos35, &menor_idade_mulher_experiencia);
 system ("pause");
 return (0);

}
  


#5
Elias Pereira

Elias Pereira

    Assistente

  • Assistente
  • 4.850 posts
  • Sexo:Masculino
Primeiro: Os unicos dados do tipo float no seu codido são os itens C e D. O restante você pode usar int.

Segundo: Use indentação no seu código que fica mais legível e com boa aparência. Ex:
while (inscricao > 0) {
   if ( sexo == 'M' ) {
      num_masc++;
      if ( experiencia == 'S' )
         idade_homens_exp += idade;
      if ( idade > 45 )
         num_homens_mais45++;
   } else {
      num_fem++;
      if ( idade < 35 )
         num_mulheres_menos35++;
      if ( menor_idade_mulher_experiencia < idade )
         menor_idade_mulher_experiencia = idade;
}

Terceiro: Acredito que pelo menos uma vez a sequencia irá ser executado, então é melhor usar do/while. O numero de inscrições você coloca antes do do. E o restante dos printf você coloca dentro do do. Ex:
printf ("Digite o numero de inscricao:\n");

do {

   printf ("Digite a idade:\n");
   printf ("Digite seu sexo M (masculino) F (feminino):\n");
   printf ("Digite sua experiencia:\n");
       
   scanf("%d %d %c %c", &inscricao, &idade, &sexo, &experiencia);

   if ( sexo == 'M' ) {
      num_masc++;
      if ( experiencia == 'S' )
         idade_homens_exp += idade;
      if ( idade > 45 )
         num_homens_mais45++;
   } else {
      num_fem++;
      if ( idade < 35 )
         num_mulheres_menos35++;
      if ( menor_idade_mulher_experiencia < idade )
         menor_idade_mulher_experiencia = idade;
} while (inscricao > 0);

Quarta: Verifique novamente seus cálculos, pois não estão corretos.

Tente melhorar estes pontos e depois volte a postar! :legal:

st-c.jpg

> Não ajudo por MP. Para isso tem o fórum.
> Favor, não abandone seu tópico! Respeite quem lhe ajuda!
"Sabemos que todas as coisas cooperam para o bem daqueles que amam a Deus, daqueles que são chamados segundo o seu propósito." (Romanos 8:28)


#6
ofernandofilo

ofernandofilo

    Membro

  • Membro
  • PipPip
  • 100 posts
Dicas:
1º. Faça um algoritmo (em "português estruturado"/portugol)
2º.Faça uso de identação
3º.Codifique seu algoritmo (sim, é preciso fazer primeiro o algoritmo)

Com um algoritmo feito e correto, poderei ajudá-lo na implementação.

Se tiver dúvida no algoritmo, me avise.

abraços

#7
Esfera

Esfera

    Membro

  • Membro
  • PipPip
  • 76 posts
Pessoal consertei algumas coisas, mas continuo com problemas no algoritmo...
me ajudem por favor... presciso terminar para hoje..


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

int main()
{
    
  int inscricao, idade, num_masc=0, num_mulheres_menos35=0, num_fem=0, menor_idade_mulher_experiencia=0; 
  char sexo, experiencia;  
  float num_homens_mais45=0, idade_homens_exp=0;
  
printf ("Digite o numero de inscricao:\n");


do{
       printf ("Digite a idade:\n");
printf ("Digite seu sexo M (masculino) F (feminino):\n");
printf ("Digite sua experiencia:\n");
        
 scanf("%d %d %c %c", &inscricao, &idade, &sexo, &experiencia);
 } while (inscricao > 0);
 if (sexo == 'M') {
 num_masc++;
 if (experiencia == 'S')
 idade_homens_exp += idade;
 if (idade > 45)
 num_homens_mais45++;
 } else {
 num_fem++;
 if (idade < 35)
 num_mulheres_menos35++;
 if (menor_idade_mulher_experiencia < idade)
 menor_idade_mulher_experiencia = idade;

 } 
 /* imprima aqui o que foi pedido */
 printf ("A- numero de candidatos do sexo masculino é: %d\n",num_masc);
 printf ("B- numero de candidatos do sexo feminino é: %d\n",num_fem);
 printf ("C- idade media dos homens que ja tem experiencia no servico é: %f\n",idade_homens_exp);
 printf ("D- porcentagem de homens com mais de 45 anos entre o total de homens é: %f\n",num_homens_mais45);
 printf ("E- numero de mulheres com idade inferior a 35 anos e com experiencia no servico é: %d\n", num_mulheres_menos35);
 printf ("F- menor idade entre as mulheres que ja tem experiencia no servico é: %d\n",menor_idade_mulher_experiencia);
 scanf("%d %d %f %f %d %d", num_masc, num_fem, idade_homens_exp, num_homens_mais45, num_mulheres_menos35, menor_idade_mulher_experiencia);
 system ("pause");
 return (0);
}


#8
Esfera

Esfera

    Membro

  • Membro
  • PipPip
  • 76 posts
PEssoal problema resolvidoo................










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

int main(){
    int cont=0, inscricao, idade, num_masc=0, num_mulheres_menos35=0, num_fem=0, menor_idade_mulher_experiencia=150;
    char sexo, experiencia;
    float num_homens_mais45=0, idade_homens_exp=0;


    do{
        printf ("Digite o numero de inscricao: '0' para Finalizar\n");
        printf ("Digite a idade:\n");
        printf ("Digite seu sexo M (masculino) F (feminino):\n");
        printf ("Possui experiencia [S] ou [N]:\n");
        scanf("%d %d %c %c", &inscricao, &idade, &sexo, &experiencia);
        if(inscricao > 0){
            if(toupper(sexo) == 'M'){
                num_masc++;
                if(toupper(experiencia) == 'S'){
                    idade_homens_exp += idade;
                    cont++;
                    if(idade > 45)
                        num_homens_mais45++;
                    }
                }
            else{
                num_fem++;
                if(idade < 35 && toupper(experiencia) == 'S'){
                     num_mulheres_menos35++;
                     if(idade < menor_idade_mulher_experiencia)
                         menor_idade_mulher_experiencia = idade;
                     }
                }
            }
    }while(inscricao > 0);


    /* imprima aqui o que foi pedido */
    printf ("A- numero de candidatos do sexo masculino e: %d\n",num_masc);
    printf ("B- numero de candidatos do sexo feminino e: %d\n",num_fem);
    printf ("C- idade media dos homens que ja tem experiencia no servico e: %f\n",idade_homens_exp/cont);
    printf ("D- porcentagem de homens com mais de 45 anos entre o total de homens e: %f\n",(num_homens_mais45*100)/num_masc);
    printf ("E- numero de mulheres com idade inferior a 35 anos e com experiencia no servico e: %d\n", num_mulheres_menos35);
    printf ("F- menor idade entre as mulheres que ja tem experiencia no servico e: %d\n",menor_idade_mulher_experiencia);
    system ("pause");
    return (0);
}





0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos