Mr.Henrique Posted April 5, 2014 Report Share Posted April 5, 2014 (edited) galera fiz uma calculadora agora gostaria de saber como faço para fazer com que o usuario escolha se ele deseja reniciar ou não a calculadora novamente #include<stdio.h> main(){ float n1,n2,r; // n1 = numero n2= segundo numero r = resultado da conta char op; // op = operador logico printf("Escolha um operador logico: \n [ + ] Soma \n [ - ] subtracao \n [ * ] mutiplicacao \n [ / ] divisao \n "); scanf("%c",&op); printf("Digite um numero : "); scanf("%f",&n1); printf("digite o segundo numero: "); scanf("%f",&n2); if (op=='+'){ r=n1+n2; printf("o resultado de %.0f %c %.0f = %.0f\n",n1,op,n2,r); } else if (op=='-'){ r=n1-n2; printf("o resultado de %.0f %c %.0f = %.0f\n",n1,op,n2,r); } else if (op=='*'){ r=n1*n2; printf("o resultado de %.0f %c %.0f = %.0f\n",n1,op,n2,r); } else if (op=='/') if (n2==0) printf("Conta Invalida\n"); else { r=n1/n2; printf("o resultado de %f %c %f = %f\n",n1,op,n2,r); } else printf("Operador logico invalido\n"); system("pause"); } Edited April 6, 2014 by thoga31 GeSHi Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 5, 2014 Report Share Posted April 5, 2014 tens que usar um ciclo que engloba todo o código que irá verificar a opção respondida pelo utilizador à questão que irás efectuar coisa como: int main(void) { int run = 0; do { // o teu código // fazer questão // ler resposta scanf("%d", &run); } while (run); return 0; } } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Mr.Henrique Posted April 5, 2014 Author Report Share Posted April 5, 2014 qual é a função do while e do int run ? Link to comment Share on other sites More sharing options...
Mr.Henrique Posted April 5, 2014 Author Report Share Posted April 5, 2014 (edited) ficaria assim ? int main (void){ float n1,n2,r; // n1 = numero n2= segundo numero r = resultado da conta char op // op = operador logico int run = 0; do { printf("Escolha um operador logico: \n [ + ] Soma \n [ - ] subtracao \n [ * ] mutiplicacao \n [ / ] divisao \n "); scanf("%c",&op); printf("Digite um numero : "); scanf("%f",&n1); printf("digite o segundo numero: "); scanf("%f",&n2); if (op=='+'){ r=n1+n2; printf("o resultado de %.0f %c %.0f = %.0f\n",n1,op,n2,r); } else if (op=='-'){ r=n1-n2; printf("o resultado de %.0f %c %.0f = %.0f\n",n1,op,n2,r); } else if (op=='*'){ r=n1*n2; printf("o resultado de %.0f %c %.0f = %.0f\n",n1,op,n2,r); } else if (op=='/') if (n2==0) printf("Conta Invalida\n"); else { r=n1/n2; printf("o resultado de %f %c %f = %f\n",n1,op,n2,r); } else printf("Operador logico invalido\n"); printf("Deseja reniciar o programa ? (s/n)"); scanf("%d",&run); }while (run); return 0; } } system("pause"); } Edited April 6, 2014 by thoga31 GeSHi Link to comment Share on other sites More sharing options...
Rui Carlos Posted April 6, 2014 Report Share Posted April 6, 2014 O seguinte código não faz muito sentido: printf("Deseja reniciar o programa ? (s/n)"); scanf("%d",&run); O scanf está a ler um inteiro, mas na mensagem que mostras ao utilizador tens (s/n). Adicionalmente, tentaste compilar o programa? As chavetas parecem não estar correctas, falta-te um ; a terminar uma declaração. Tirando isto, o programa deve estar a funcionar minimamente. Há, no entanto, coisas que podes melhorar, como a verificação dos valores lidos. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
Mr.Henrique Posted April 6, 2014 Author Report Share Posted April 6, 2014 Sim, é que to tentado fazer o codigo para reniciar o programa tipo o usuario calcula a conta depois de calcular o programa faz um pergunta Voce gostaria de reniciar o programa ?(s/n) se ele colocar sim o programa renicia e se ele colocar n o programa fecha sozinho mais não consigo fazer isso Link to comment Share on other sites More sharing options...
Rui Carlos Posted April 6, 2014 Report Share Posted April 6, 2014 O que tens actualmente é basicamente printf("Deseja reniciar o programa ? (s/n)"); scanf("%d",&run); }while (run != 0); Ou seja, no final estás a ler um int (scanf com %d), e estás a parar quando o valor lido for 0. Aquilo que precisas de fazer é ler um char, e parar quando o valor lido for 'n'. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
Mr.Henrique Posted April 8, 2014 Author Report Share Posted April 8, 2014 ta dando erro no }while (run != 0); coloquei }while (run != 'n'); e não foi Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now