Ir para conteúdo

Arquivado

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

Juliano Araujo

Não passa do if

Recommended Posts

Gostaria da ajuda de alguem, não sei o que tem de errado no meu código, ele não mostra o printf.


#include <stdio.h>

#include <conio.h>

main(){


char lutador1[40], lutador2[40], sexo1[1], sexo2[1], i;

float peso1, peso2;



printf("Digite o nome do Lutador: ");

scanf("%s",&lutador1);


printf("Digite seu sexo M ou F: ");

scanf("%s",&sexo1);


printf("Digite seu peso: ");

scanf("%f",&peso1);


printf("Digite seu nome de Oponente: ");

scanf("%s",&lutador2);


printf("Digite seu sexo M ou F: ");

scanf("%s",&sexo2);


printf("Digite seu peso: ");

scanf("%f",&peso2);


if (sexo1 =='M' || sexo1 =='m' && sexo2 =='M' || sexo2 =='m') {

printf ("Competidores Masculinos\n");

}

if (sexo1 =='F' || sexo1 =='f' && sexo2 =='F' || sexo2 =='f'){

printf ("Competidores Femininos\n");

}

if (sexo1 =='M' || sexo1 =='m' && sexo2 =='F' || sexo2 =='f') {

printf ("Sexos diferentes - nao possivel luta\n");

}



getch();

}//fecha main

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Complementando o que Beraldo disse: quando a variável tiver apenas um caractere, você não pode precisa impor o limite de [1] caractere, pois essa é a função do char, dizer que a variável tem apenas um charactere.

 

Quando testei seu código, vi que ao colocar no primeiro competidor um gênero e no segundo um gênero diferente, aparecia a mensagem do ultimo gênero ("Competidores Masculinos" ou "Competidores Femininos"), seguida da mensagem "sexos diferentes - nao possivel luta", então vi nas suas condições dos Ifs um grande embaralhamento, dado pela falta de parênteses para separar as duas condições no mesmo If, observe o jeito que você fez:

if (sexo1 =='M' || sexo1 =='m' && sexo2 =='M' || sexo2 =='m') {
printf ("Competidores Masculinos\n");
}
if (sexo1 =='F' || sexo1 =='f' && sexo2 =='F' || sexo2 =='f'){
printf ("Competidores Femininos\n");
}
if (sexo1 =='M' || sexo1 =='m' && sexo2 =='F' || sexo2 =='f') {
printf ("sexos diferentes - nao possivel luta\n");
}

Observe o jeito que eu fiz correto:

if ((sexo1 == 'M' || sexo1 == 'm') && (sexo2 == 'M' || sexo2 == 'm')) 
printf ("Competidores Masculinos\n");
else if ((sexo1 =='F' || sexo1 =='f') && (sexo2 =='F' || sexo2 =='f'))
printf ("Competidores Femininos\n");
else 
printf ("sexos diferentes - nao possivel luta\n");

Se observar bem, pus mais um par de parênteses em cada If, pois, caso não coloque-os, ficarão quatro condições em cada If, 'M' ou 'm' e 'F' ou 'f', percebeu a diferença? Se seguisse o seu código, você teria 3 opções em cada If (em seguida escolher o 'F' ): escolher 'm' ou 'M' ou 'f'.

 

Também deve ter percebido que eu mexi na estrutura do seu If. Caso não saiba, se você só utilizar uma linha de comando no If, você pode deixar de usar as chaves e fazer do jeito que fiz. Também encadeei os If's, economizando o total de 3 (TRÊS!!!) linhas.

 

Caso queira aprender um pouco sobre encadeamento de condições (If-if else - else), segue o link:

http://linguagemc.com.br/estruturas-de-decisao-encadeadas-if-else-if-else/

 

Espero que tenha entendido a explicação e espero ter ajudado (pelo menos um pouquinho).

 

Abraços.

 

@offtopic: Escrevi esse texto todo e sem querer apertei em Retornar à pagina anterior, MAAAAAAAAAAAAAAAAASS, graaaças a Zeus nesse fórum existe o comando de "Visualizar último conteúdo salvo" , obrigado iMasters.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você declarou o como array;

---o1[1], ---o2[1]

Porém não tava usando como deveria!

if (---o1 =='M' || ---o1 =='m' && ---o2 =='M' || ---o2 =='m') {

Cuidado com esses nomes de variáveis, aqui não compilou!

eu mudei e testei! Acho que saiu oq você queria!

 

 

#include <stdio.h>
#include <conio.h>
main(){
    
  char lutador1[40], lutador2[40], o1[1], o2[1], i; 
  float peso1, peso2;
  


  printf("Digite o nome do Lutador: ");
  scanf("%s",&lutador1);
   
  printf("Digite seu ---o M ou F: ");
  scanf("%s",&o1[0]);
   
  printf("Digite seu peso: ");
  scanf("%f",&peso1);
   
  printf("Digite seu nome de Oponente: ");
  scanf("%s",&lutador2);
   
  printf("Digite seu ---o M ou F: ");
  scanf("%s",&o2[0]);
    
  printf("Digite seu peso: ");
  scanf("%f",&peso2);


if (o1[0] =='M' || o1[0] =='m' && o2[0] =='M' || o2[0] =='m') {
printf ("Competidores Masculinos\n");
}
if (o1[0] =='F' || o1[0] =='f' && o2[0] =='F' || o2[0] =='f'){
printf ("Competidores Femininos\n");
}
if (o1[0] =='M' || o1[0] =='m' && o2[0] =='F' || o2[0] =='f') {
printf ("---os diferentes - nao possivel luta\n");
} 
  getch();
}

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.