Ir ao conteúdo

Posts recomendados

Postado

Tenho 12 anos e ,comecei em um curso de programação e estou com um problema em uma questão.

 

Porque quando o programa mostra o gênero, que é "gmes", ele mostra um símbolo e não m ou f ? 

#include<stdio.h>
#include<stdlib.h>
main(){
	char gen,gmes;
	int id,sal,ms,idmaior,idmenor,nm,mes,idmes,cont;
	mes=cont=nm=ms=idmaior=idmenor=0;
	while (id>=0)
	{
		printf("\nEntre com a idade\n");
		scanf(" %d",&id);
		
		printf("\nEntre com o genero M-F \n");
		scanf(" %c",&gen);
		
		printf("\nEntre com o salario\n");
		scanf( "%d",&sal);
		
		if (id<0)
		printf("\nVoce saiu do programa\n");
		else
		{
			ms=ms+sal;
			cont=cont+1;
			if (idmaior==0 && idmenor==0)
		
			idmaior=idmenor=id;
			else
			if (id>=idmaior)
			
			idmaior=id;
			else
			if (id<=idmenor)
			idmenor=id;
			
			if (gen='f' && sal <=1000)
			nm=nm+1;
			
			if (mes==0)
			{
				mes=sal;
				idmes=id;
				gmes=gen;
			}
			else
			if (sal<mes)
			{
				mes=sal;
				idmes=id;
				gmes=gen;
			}
		}
	}
	
	ms=ms/cont;
	printf("\nA media do salario e %d\n",ms);
	printf("\nA maior idade e %d\n",idmaior);
	printf("\nA menor idade  e %d\n",idmenor);
	printf(" \n %d mulheres possuem salario ate R$1000,00\n",nm);
	printf("\nA pessoa do menor salario e  do genero %c\n",gmes);
		printf("\nA pessoa do menor salario tem %d anos\n",idmes);
	
	system("pause");				
}

 

  • Curtir 1
Postado

Seja bem vindo ao mundo da programação, nos seus testes, a variável gmes está imprimindo o valor aleatório de inicialização da mesma, e como não é definida pelas condicionais mes == 0 e sal < 0 a mesma permanece com esse valor.
Sete a para um valor de sua escolha na inicialização ou depois no código, seja ele ou nulo ou no caso do código em questão, M ou F.

  • Curtir 1
Postado
#include <stdio.h>
#include <stdlib.h>

int main() {
    char gen, gmes;
    int id, sal, ms, idmaior, idmenor, nm, mes, idmes, cont;
    mes = cont = nm = ms = idmaior = idmenor = 0;
    while (id >= 0) {
        printf("\nEntre com a idade\n");
        scanf(" %d", &id);

        printf("\nEntre com o genero M-F \n");
        scanf(" %c", &gen);

        printf("\nEntre com o salario\n");
        scanf(" %d", &sal);

        if (id < 0)
            printf("\nVoce saiu do programa\n");
        else {
            ms = ms + sal;
            cont = cont + 1;
            if (idmaior == 0 && idmenor == 0)
                idmaior = idmenor = id;
            else if (id >= idmaior)
                idmaior = id;
            else if (id <= idmenor)
                idmenor = id;

            if (gen == 'f' && sal <= 1000) //O erro era aqui, estava atribuindo (=) a gen, mas deve comparar (==)
                nm = nm + 1;

            if (mes == 0) {
                mes = sal;
                idmes = id;
                gmes = gen;
            } else if (sal < mes) {
                mes = sal;
                idmes = id;
                gmes = gen;
            }
        }
    }

    ms = ms / cont;
    printf("\nA media do salario e %d\n", ms);
    printf("\nA maior idade e %d\n", idmaior);
    printf("\nA menor idade  e %d\n", idmenor);
    printf(" \n %d mulheres possuem salario ate R$1000,00\n", nm);
    printf("\nA pessoa do menor salario e' do genero %c\n", gmes);
    printf("\nA pessoa do menor salario tem %d anos\n", idmes);

    getchar();
    return 0;
}

 

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!