Ir ao conteúdo

Ajuda com dúvida simples.


blum4n

Posts recomendados

Postado

Olá, fiz um programa para minha mulher usar no trabalho dela, mas 1 função não está funcionando corretamente.

#include <stdio.h>
main () {
char programa;
float n1,n3,n4,refra;
printf ("Digite 'C' para iniciar o programa de calculo de Ceratometra \nDigite 'D' para iniciar o programa de calculo de Diopitria \nDigite 'R' para iniciar o programa de calculo de Regracao \n");
scanf (" %c", &programa);
while (programa!='s' || programa!='S') {
if (programa=='c' || programa=='C') {
printf (" informe a ceratometria ou '99' para sair\n");
scanf ("%f %f", &n3, &n4);
while (n3!=99 || n4!=99) {
if (n3<=n4) {
if (n3>=38 && n3<=40.75 && n4<=48){
printf ("Curca 9.1\n");
}
if (n3>=41 && n3<=44.75 && n4<=48) {
printf (" Curva 8.9\n ");
}
if (n3>=45 && n3<=48 && n4<=48) {
printf (" Curva 8.7\n ");
}
if (n3>=38 && n4>48) {
printf (" Nao e possivel o calculo\n Ceratometria acima do padrão de fabricação\n ");
}
}
else {
if (n4>=38 && n4<=40.75 && n3<=48){
printf ("Curca 9.1\n");
}
if (n4>=38 && n3>48) {
printf (" Nao e possivel o calculo\n Ceratometria acima do padrão de fabricação\n ");
}
}
printf (" informe a ceratometria ou '99' para sair\n");
scanf ("%f %f", &n3, &n4);
}
}
if (programa=='d' || programa=='D') {
printf ("informe a Diopitria ou '99' para sair\n");
scanf("%f", &n1);
while (n1!=99 || n1!=99) {
if (n1==36) {
printf ("Raio 9,37\n");
}
if (n1>70) {
printf ("Diopitria invalida \n ");
}
printf ("informe a Diopitria ou '99' para sair\n");
scanf("%f", &n1);
}
}
if (programa=='r' || programa=='R') {
while (refra!=99) {
printf ("informe a refracao do aculos ou '99' para sair\n");
scanf ("%f", &refra);
if (refra==4) {
printf ("grau final 4.25 \n");
}
if (refra==-29.50) {
printf ("grau final -22.00 \n");
}
}
}
printf ("Digite 'C' para iniciar o programa de calculo de Ceratometra \nDigite 'D' para iniciar o programa de calculo de Diopitria \nDigite 'R' para iniciar o programa de calculo de Regracao \nOu digite 'S' para sair\n");
scanf (" %c", &programa);
}
system ("pause");
}

o erro está na hora de sair do programa, ao finalizar ele pergunta se deseja abrir algum programa ou 's' para finalizar, mas quando é digitado 's' ele não sai...

alguem sabe onde errei? ou como resolver isso?

obrigado

att,

Ricardo Alcantara

Postado

bem aqui:

while (programa!='s' || programa!='S')

Vamo lá, você digitou 's' o que acontece?

while (falso || verdadeiro)

Resultado de falso OU verdadeiro é verdadeiro...

Se digitasse 'S' daria a mesma coisa...

O certo é

while (programa!='s' && programa!='S')

Postado
bem aqui:

while (programa!='s' || programa!='S')

Vamo lá, você digitou 's' o que acontece?

while (falso || verdadeiro)

Resultado de falso OU verdadeiro é verdadeiro...

Se digitasse 'S' daria a mesma coisa...

O certo é

while (programa!='s' && programa!='S')

muito obrigado... realmente eu tinha escrevido a função errado..

valeu

Arquivado

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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!