Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Gabriel SN

C Programa em C com IF

Recommended Posts

Eu estou com esse problema
se GCE ou GCD for de 0 a -2 verificar de GEE e GED esta entre -3 e -10 e se GCE e GCD for 0 o GEE e GED pode ser de -3 a -12 e se estiver nos parametros falar que é LP ou se GCE ou GCD for -3,-4,-5 e GEE e GED estiver entre 0 a -15 apresentar LV,
Valores de entrada limitado entre 0 e -15 para GEE e GED
Valores de entrada limitado entre 0 e -6 para GCE e GCD

estou tentando fazer assim

#include <stdio.h>
#include <conio.h>

int main()
{
    int gee,ged,gce,gcd;
    printf("Grau esferico do olho esquerdo: ");
    scanf("%d",&gee);
    printf("Grau esferico do olho direito: ");
    scanf("%d",&ged);
    printf("Grau cilindrico do olho esquerdo: ");
    scanf("%d",&gce);
    printf("Grau cilindrico do olho esquerdo: ");
    scanf("%d",&gcd);
    printf("teste:%d"),gce;
    
 if(gee >=-3 or gee <=-12){
         if(gce =-2){
              if(gcd =-2){
                  printf("Lente 12");
              }
          }
     
    }
    else
            if(ged >=-3 or ged <=-12){
          if(gce =-2){
              if(gcd =-2){
                  printf("Lente 13");
              }
          }
    }
    
    else 
       if(gee >-12){
          printf ("O seu atleta e veterano");
    }else 
    printf("O seu atleta nao pode competir com essa idade");

 
 getch();
}



não estou conseguindo esta dando errado se alguem conseguir me ajudar, o programa esta incompleto apenas tentando fazer duas estruturas para dar o resultado

Editado por Simon Viegas
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Gabriel SN Olá. Apenas uma explicação básica do operador =:

quando eu faço int i = 10; eu estou atribuindo o valor 10 a variável i

já quando eu quero comparar dois valores, seria isso:

if (gce == -2). Aqui estou comparando se o valor de gce é igual a -2

Resumindo: Um só operador = é atribuição. Dois operadores == é comparação

Outro ponto: Para usar o operador OU (or) no C seria isso: || (tecla pipe)

Logo, nessa parte do seu código ficaria assim:

if (ged >= -3 || ged <= -12) // ged maior ou igual a -3 OU ged menor ou igual a -12

Vê se deu para entender bem essa parte. E aí é ver se a lógica do código está correta, ok?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@giu_d  é isso sim mais não entendo qual quer valor que coloco esta dando lente 12 não passa para a lente 13, mais uma duvida o int e o %d pode ser com números negativos ? tem alguma forma de limitar os números de entrada ?

obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Gabriel SN Nessa parte do código seria isso:

printf("teste: %d", gce);

Vou verificar bem a lógica do código e assim q puder retorno, ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@giu_d  essa parte do código era só para saber o que o programa estava escrevendo na variável mais não entendi ele escreve outro numero não o que eu digitei, ok eu agradeço pela ajuda faz mais de 1 ano e pouco que não programo em c estou enferrujado e não estou achando minha apostila de c kkkk

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Gabriel SN Dei uma mexida no código e já mudou o resultado. O operador é o && e não o ||

Segue o código:

 

#include <stdio.h>
#include <conio.h>

void limpa_linha() {
    scanf("%*[^\n]");
    scanf("%*c");
}

int main()
{
    int gee, ged, gce, gcd;
    printf("Grau esferico do olho esquerdo: ");
    scanf("%d", &gee);
    limpa_linha();
    printf("Grau esferico do olho direito: ");
    scanf("%d", &ged);
    limpa_linha();
    printf("Grau cilindrico do olho esquerdo: ");
    scanf("%d", &gce);
    limpa_linha();
    printf("Grau cilindrico do olho esquerdo: ");
    scanf("%d", &gcd);
    limpa_linha();
    printf("teste: %d\n", gce);

    if (gee <= -3 && gee >= -12) {
        if (gce == -2){
            if (gcd == -2){
                printf("Lente 12");
            }
        }
    }

    if (ged <= -3 && ged >= -12) {
        if (gce == -2){
            if(gcd == -2){
                printf("Lente 13");
            }
        }
    }
    if(gee > -12) {
        printf ("\nO seu atleta e veterano");
        return 0;
    }
    else
        printf("\nO seu atleta nao pode competir com essa idade");
        return 0;


    getch();
}

Já tá mudando os resultados. Agora chega na lente 12 e lente 13. Dá uma olhada 

adicionado 5 minutos depois

Só corrigindo:

if (gee <= -3 && gee >= -12) {
    if (gce == -2){
        if (gcd == -2){
            printf("Lente 12");
        }
    }
}

else if (ged <= -3 && ged >= -12) {
    if (gce == -2){
        if(gcd == -2){
            printf("Lente 13");
        }
    }
}
if (gee < -12) {
    printf ("\nO seu atleta e veterano");    
}

Tem q mexer no código até chegar ao resultado desejado. Não tem outro jeito!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@giu_d so falta testar ja fiz

#include <stdio.h>
#include <conio.h>

void limpa_linha() {
    scanf("%*[^\n]");
    scanf("%*c");
}

int main()
{
    int gee, ged, gce, gcd;
    printf("Grau esferico do olho esquerdo: ");
    scanf("%d", &gee);
    limpa_linha();
    printf("Grau esferico do olho direito: ");
    scanf("%d", &ged);
    limpa_linha();
    printf("Grau cilindrico do olho esquerdo: ");
    scanf("%d", &gce);
    limpa_linha();
    printf("Grau cilindrico do olho esquerdo: ");
    scanf("%d", &gcd);
    limpa_linha();

    if (gee <= -3 && gee >= -10) {
        if (gce <= -1 && gce >= -2){
        	printf("LP");
        }
        else
            if(gcd <= -1 && gcd >= -2){
                printf("LP");
            }
    }
	else
    if (ged <= -3 && ged >= -10) {
        if (gce <= -1 && gce >= -2){
        	printf("LP");
        }
        else
            if(gcd <= -1 && gcd >= -2){
                printf("LP");
            }
        
    }
    else
    if (gee <= -3 && gee >= -12) {
        if (gce == 0){
        	printf("LP");
        }
        else
            if(gcd == 0){
                printf("LP");
            }
        
    }
    else
    if (ged <= -3 && ged >= -12) {
        if (gce == 0){
        	printf("LP");
        }
        else
            if(gcd == 0){
                printf("LP");
            }
        
    }
    else
    if (gee <= 0 && gee >= -15) {
        if (gce <= -1 && gce >= -2){
        	printf("LV");
        }
        else
            if(gcd <= -1 && gcd >= -2){
                printf("LV");
            }
    }
	else
    if (ged <= 0 && ged >= -15) {
        if (gce <= -3 && gce >= -5){
        	printf("LV");
        }
        else
            if(gcd <= -3 && gcd >= -5){
                printf("LV");
            }
        
    }
    else
        printf("\nNenhuma lente disponivel");
        return 0;


    getch();
}

e muito obrigado pela ajuda

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Gabriel SN Cara, Volta a estudar C! Você demostra entender do negócio. A questão nesse exercício é que é preciso analisar bem o enunciado do mesmo para daí passar p o código o q está sendo pedido

Mas queria encorajar você a voltar a estudar!

Qto a material tem muito na internet hoje em dia e se tiver dúvidas poste aqui no fórum suas dúvidas  :thumbsup:

adicionado 13 minutos depois

Segue um site onde você vai encontrar muita coisa interessante sobre o C:

https://www.cprogressivo.net/p/o-basico-da-linguagem-c.html

Sugiro, pelo menos, dar uma olhada

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@giu_d Fiz algumas alterações que ainda não estava dando o resultado correto pela arquitetura que eu projetei agora esta correto, o codigo foi introduzido como HTML não consegui alterar para C
 

#include <stdio.h>
#include <conio.h>

void limpa_linha() {
    scanf("%*[^\n]");
    scanf("%*c");
}

int main()
{
    int gee, ged, gce, gcd;
    printf("Grau esferico do olho esquerdo: ");
    scanf("%d", &gee);
    limpa_linha();
    printf("Grau esferico do olho direito: ");
    scanf("%d", &ged);
    limpa_linha();
    printf("Grau cilindrico do olho esquerdo: ");
    scanf("%d", &gce);
    limpa_linha();
    printf("Grau cilindrico do olho esquerdo: ");
    scanf("%d", &gcd);
    limpa_linha();
    
	    if (gce == 0) {
	    	if (gee <= 0 && gee >= -2){
				printf("LV");
			}
				else
					if(ged <= 0 && ged >= -2){
						printf("LV");
					}
						else
					    	if (gee <= -3 && gee >= -12){
					        	printf("LP");
					        }
						        else
						        	if(ged <= -3 && ged >= -12){
								                printf("LP");
								    }
								    	else
									        if (gee <= -13 && gee >= -15){
									        	printf("LV");
									        }
										        else
										            if(ged <= -13 && ged >= -15){
										                printf("LV");
										            }
									        	        
	    }
	else
	    if (gcd == 0) {
	    	if (gee <= 0 && gee >= -2){
				printf("LV");
			}
				else
					if(ged <= 0 && ged >= -2){
						printf("LV");
					}
						else
					    	if (gee <= -3 && gee >= -12){
					        	printf("LP");
					        }
						        else
						        	if(ged <= -3 && ged >= -12){
								                printf("LP");
								    }
								    	else
									        if (gee <= -13 && gee >= -15){
									        	printf("LV");
									        }
										        else
										            if(ged <= -13 && ged >= -15){
										                printf("LV");
										            }
									        	        
	    }
	else
		if (gce <= 0 && gce >= -2){
			if (gee <= -1 && gee >= -2) {
				printf("LV");
			}
				else
					if (ged <= 0 && ged >= -2) {
						printf("LV");
					}
						else
							if (gee <= -3 && gee >= -10) {
								printf("LP");
							}
								else
									if (ged <= -3 && ged >= -10) {
										printf("LP");
									}
										else
											if (gee <= -11 && gee >= -15) {
												printf("LV");
											}
												else
													if (ged <= -11 && ged >= -15) {
														printf("LV");
													}
		}
	else
		if (gcd <= -1 && gcd >= -2){
			if (gee <= 0 && gee >= -2) {
				printf("LV");
			}
				else
					if (ged <= 0 && ged >= -2) {
						printf("LV");
					}
						else
							if (gee <= -3 && gee >= -10) {
								printf("LP");
							}
								else
									if (ged <= -3 && ged >= -10) {
										printf("LP");
									}
										else
											if (gee <= -11 && gee >= -15) {
												printf("LV");
											}
												else
													if (ged <= -11 && ged >= -15) {
														printf("LV");
													}
		}
	else
		if (gce <= -3 && gce >= -5){
			if (gee <= 0 && gee >= -15) {
				printf("LV");
			}
				else
					if (ged <= 0 && ged >= -15) {
						printf("LV");
					}
		}
	else
		if (gcd <= -3 && gcd >= -5){
			if (gee <= 0 && gee >= -15) {
				printf("LV");
			}
				else
					if (ged <= 0 && ged >= -15) {
						printf("LV");
					}
		}
	else
        printf("\nNenhuma lente disponivel");
        return 0;


    getch();
}

@giu_d Vou voltar estudar sim programação é uma coisa que gosto muito, no momento não estava estudando muito por causa de provas da faculdade mais no próximo semestre tem mais linguagem C e fora isso tem algumas coisas que tento fazer de programação em C para não esquecer, e de novo muito obrigado

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue seu código indentado usando esse site de indentação automática:

https://www.tutorialspoint.com/online_c_formatter.htm

 

#include <stdio.h>
#include <conio.h>

void limpa_linha() {
    scanf("%*[^\n]");
    scanf("%*c");
}

int main()
{
    int gee, ged, gce, gcd;
    printf("Grau esferico do olho esquerdo: ");
    scanf("%d", &gee);
    limpa_linha();
    printf("Grau esferico do olho direito: ");
    scanf("%d", &ged);
    limpa_linha();
    printf("Grau cilindrico do olho esquerdo: ");
    scanf("%d", &gce);
    limpa_linha();
    printf("Grau cilindrico do olho esquerdo: ");
    scanf("%d", &gcd);
    limpa_linha();

    if (gce == 0) {
        if (gee <= 0 && gee >= -2) {
            printf("LV");
        }
        else if(ged <= 0 && ged >= -2) {
            printf("LV");
        }
        else if (gee <= -3 && gee >= -12) {
            printf("LP");
        }
        else if(ged <= -3 && ged >= -12) {
            printf("LP");
        }
        else if (gee <= -13 && gee >= -15) {
            printf("LV");
        }
        else if(ged <= -13 && ged >= -15) {
            printf("LV");
        }

    }
    else if (gcd == 0) {
        if (gee <= 0 && gee >= -2) {
            printf("LV");
        }
        else if(ged <= 0 && ged >= -2) {
            printf("LV");
        }
        else if (gee <= -3 && gee >= -12) {
            printf("LP");
        }
        else if(ged <= -3 && ged >= -12) {
            printf("LP");
        }
        else if (gee <= -13 && gee >= -15) {
            printf("LV");
        }
        else if(ged <= -13 && ged >= -15) {
            printf("LV");
        }

    }
    else if (gce <= 0 && gce >= -2) {
        if (gee <= -1 && gee >= -2) {
            printf("LV");
        }
        else if (ged <= 0 && ged >= -2) {
            printf("LV");
        }
        else if (gee <= -3 && gee >= -10) {
            printf("LP");
        }
        else if (ged <= -3 && ged >= -10) {
            printf("LP");
        }
        else if (gee <= -11 && gee >= -15) {
            printf("LV");
        }
        else if (ged <= -11 && ged >= -15) {
            printf("LV");
        }
    }
    else if (gcd <= -1 && gcd >= -2) {
        if (gee <= 0 && gee >= -2) {
            printf("LV");
        }
        else if (ged <= 0 && ged >= -2) {
            printf("LV");
        }
        else if (gee <= -3 && gee >= -10) {
            printf("LP");
        }
        else if (ged <= -3 && ged >= -10) {
            printf("LP");
        }
        else if (gee <= -11 && gee >= -15) {
            printf("LV");
        }
        else if (ged <= -11 && ged >= -15) {
            printf("LV");
        }
    }
    else if (gce <= -3 && gce >= -5) {
        if (gee <= 0 && gee >= -15) {
            printf("LV");
        }
        else if (ged <= 0 && ged >= -15) {
            printf("LV");
        }
    }
    else if (gcd <= -3 && gcd >= -5) {
        if (gee <= 0 && gee >= -15) {
            printf("LV");
        }
        else if (ged <= 0 && ged >= -15) {
            printf("LV");
        }
    }
    else
        printf("\nNenhuma lente disponivel");
    return 0;


    getch();
}

 

 

Só a titulo de observação se tiverem curiosidade, na linguagem C seria possível usar as palavras and e or como operadores lógicos no lugar de && e || se incluir a biblioteca iso646.h que define macros para essas palavras. (E no C++ ambas as formas já são válidas nativamente sem precisar incluir nada.)

 

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×