Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Raffael.junior

Problema com leitura de dados

Recommended Posts

Olá amigos, sou novo aqui e novo tambem em programação

estou tentando fazer uma lista de exercicio me C, uso o Dev C++ 4.9.9.2, enfim

esse é o titulo do exercicio:

Escreva um programa que leia os dados (nome, sexo e idade) de 5 alunos e exiba na tela:

- o nome e a idade de cada um

- a quantidade de mulheres

- a quantidade de homens

- a idade média dos alunos.

ainda nao posso usar por exemplo um comando de repetição, o que posso usar nesse exercicio é no maximo if e else.. o problema que estou tendo neste aí a baixo, que esta incompleto, é que não consigo ler o segundo nome (*), o programa pula automaticamente para a linha de baixo(#).

bom... se alguem puder me ajudar fico grato, enquanto isso fico quebrando a cabeça aqui..

#include <stdio.h>

int main(){
    
    char nome1[50], nome2[50], nome3[50];
    char sexo1, sexo2, sexo3;
    int idade1, idade2, idade3;
    int QuantSexoM = 0;
    int QuantSexoF = 0;
    // Leitura dos dados do primeiro aluno
    printf("Informe o nome do 1 aluno ==> ");
    gets(nome1);
    printf("\nAgora informe o seu sexo \n'M' para masculino ou 'F' para feminino: ====> ");
    scanf ("%c",&sexo1);
    if (sexo1 == "M"){
       QuantSexoM = QuantSexoM + 1;
       }
       else if  (sexo1 == "F"){
            QuantSexoF = QuantSexoF + 1;
            }
    printf("\nInforme sua idade: ");
    scanf("%d",&idade1);
    
    //Leitura dos dados do segundo aluno
      
    *printf("\nInforme o nome do 2 aluno ==> ");
    *gets(nome2);
    #printf("\nAgora informe o seu sexo \n'M' para masculino ou 'F' para feminino: ====> ");
    #scanf ("%c",&sexo2);
    if (sexo2 == "M"){
       QuantSexoM = QuantSexoM + 1;
       }
       else if  (sexo2 == "F"){
            QuantSexoF = QuantSexoF + 1;
            }
    printf("\nInforme sua idade: ");
    scanf("%d",&idade2);
    //Leitura dos dados ddo terceiro aluno
    printf("Informe o nome do 3 aluno ==> ");
    gets(nome3);
    printf("\nAgora informe o seu sexo \n'M' para masculino ou 'F' para feminino: ====> ");
    scanf ("%c",&sexo3);
    if (sexo3 == "M"){
       QuantSexoM = QuantSexoM + 1;
       }
       else if  (sexo3 == "F"){
            QuantSexoF = QuantSexoF + 1;
            }
    printf("\nInforme sua idade: ");
    scanf("%d",&idade3);
    printf("\n\n");
    printf("===== Apresentacao dos dados Informaddos ===== ");
    printf("\n Primeiro aluno: %s de idade %d ",nome1,idade1," anos");
        
    
    
    getch();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara como pode ver no enunciado o problema e bem simples, ja o fiz usando Visualg, e o maximo que posso usar é o if... else, o que é estranho é que a instrução gets para ler o nome2 nao está em execução o que realmente nao entendo, ja que a mesma funciona para ler o nome1.

 

 

 

Seguinte preciso saber se para resolver o teu problema posso usar matriz, ponteiro, struct entre outras coisas?

 

ATT

TCH.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

E novamente: não use gets.

E ela está executando. Acontece que tem o \n na entrada e ele é lido pela função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao qual função deve usar para ler uma string, lembrando que no final do programa ele apresenta na tela o nome completo do aluno incluindo espaço?

E novamente: não use gets.

E ela está executando. Acontece que tem o \n na entrada e ele é lido pela função.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.