Ir ao conteúdo
  • Cadastre-se
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

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

×