Ir ao conteúdo
  • Cadastre-se
Caio Bras

C Como fazer usuário escolher entre fechar o programa ou voltar ao início dele.

Recommended Posts

Olá, sou bem iniciante em C e estou fazendo um programa que converte de celsius para fahrenheit ou para kelvin (o usuário escolhe isso com uma entrada de valor). Porém no final eu queria que o usuário também entrasse com um valor, respondendo se ele quer fechar o programa ou converter mais valores e no caso dele responder a primeira pergunta com um valor inválido, também voltasse ao início.


#include <stdio.h>

int main(){
    int a;
    printf("Digite 1 para converter de celsius para fahrenheit\nDigite 2 para converter de celsius para kelvin\n");
    scanf("%d", &a);
    if(a == 1){
        celsius_fahrenheit();
    }else if(a == 2){
        celsius_kelvin();
    }else if(a != 1 && a != 2){
        printf("\n\n\n############Digite um valor valido################\n\n\n");
    }

       return 0;
}

int celsius_kelvin(){
    float celsius;
    float kelvin=273.15;

    printf("\n\n\n\nQual o valor em Celsius?\n");scanf("%f", &celsius);

    kelvin = celsius + kelvin;

    printf("Em Kelvin seria: %.2f\n", kelvin);
}

int celsius_fahrenheit(){
    float celsius;
    float fahrenheit;

    printf("\n\n\n\nQual o valor em Celsius?\n");scanf("%f", &celsius);

    fahrenheit = celsius*1.8+32;

    printf("Em Fahrenheit seria: %.2f\n", fahrenheit);
}


 

adicionado 18 minutos depois

Acredito que consegui resolver. Segue o código-fonte:

#include <stdio.h>

int main(){
    int b;
    while(1){
    int a;
    printf("Digite 1 para converter de celsius para fahrenheit\nDigite 2 para converter de celsius para kelvin\n");
    scanf("%d", &a);
    if(a == 1){
        celsius_fahrenheit();
    }else if(a == 2){
        celsius_kelvin();
    }else if(a != 1 && a != 2){
        printf("\n\n\n############Digite um valor valido################\n\n\n");
    }
    printf("\nDeseja converter mais?\n1 - Sim\n2 - Nao\n");
    scanf("%d", &b);
        if(b == 2){
            break;
        }
}
    return 0;
}

int celsius_kelvin(){
    float celsius;
    float kelvin=273.15;

    printf("\n\n\n\nQual o valor em Celsius?\n");scanf("%f", &celsius);

    kelvin = celsius + kelvin;

    printf("Em Kelvin seria: %.2f\n", kelvin);
}

int celsius_fahrenheit(){
    float celsius;
    float fahrenheit;

    printf("\n\n\n\nQual o valor em Celsius?\n");scanf("%f", &celsius);

    fahrenheit = celsius*1.8+32;

    printf("Em Fahrenheit seria: %.2f\n", fahrenheit);
}


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só colocar no final do código (ou no final da ação) assim

char c;

printf("Deseja converter outra temperatura? ");

c = getch();

if(c == 's' || c == 'S')

{

 goto inicio; //Coloca inicio: no começo do código pra definir pra onde vai voltar

}

else

{

system ("pause");

}

Exemplo:
 

#include <stdio.h>
#include <stdlib.h>
char x[10];
int main()
{
    inicio:
    printf("Hello world!\n");
    scanf("%s",&x);
    printf("\n x = %s\n",x);
    char c;
printf("Deseja converter outra temperatura?\n ");
c = getch();
if(c == 's' || c == 'S')
{
goto inicio;
}

else

{
system ("pause");
}
}

 

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

×