1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: Pela 0:30 desta Sexta-feira (9 de Dezembro, 23:30 de Quinta-feira nos Açores) o Fórum e restantes sites da ZWAME vão estar offline para manutenção durante cerca de 1h30.
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

[C] Erro

Discussão em 'Programação' iniciada por Ruanes, 2 de Julho de 2008. (Respostas: 8; Visualizações: 680)

  1. Ruanes

    Ruanes Power Member

    oi
    venho aqui maios uma vez por uma duvida que tenho num codigo
    desta vez e por causa do switch.
    Código:
    #include <stdio.h>
    int main()
    {
    char num;
    printf("1=%s\n2=%s\n3=%s\n4=%s\n5=%s\n6=%s\n7=%s\n8=%s\n9=%s\n10=%s\n11=%s\n12=%s\n","Janeiro","Fevereiro","Marco","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");
    printf("Escreve o numero correspondente ao mes: "); 
    num=getchar();
    fflush(stdin);
    switch (num)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
    puts("\nEsse mes tem 31 dias.");
    break;
    case 2:
    puts("\nEsse mes tem 28 dias em anos nao bissextos e 29 em anos bissextos.");
    break;
    case 4:
    case 6:
    case 9:
    case 11:
    puts("\nEsse mes tem 30 dias.");
    break;
    default:
    puts("Opcao errada");
    }
    }
    o problema e que quando escrevo um numero da-me logo opção errada.
     
  2. Declara a variável "num" como "int". Não te esqueças de usar a função atoi() para converter a string num inteiro. Para além disto, vais ter de ler o input com gets().
     
  3. Ruanes

    Ruanes Power Member

    como é que se usa a função atoi()?
     
  4. Ruanes

    Ruanes Power Member

  5. Ruanes

    Ruanes Power Member

    não estou a perceber bem. Se eu declarar "num" como "int" depois como é que o leio com gets(). Depois acho que tambem nao consigo converter num(int) numa string porque como disseste a função atoi() converte strings em inteiros e nao ao contrario. (isto segundo o meu compilador)

    p.s. Nao estou a perceber bem o que queres dizer. Isto tudo seja talvez por má interpretação minha do post.
     
  6. Esqueci-me de um pormenor: tens de ler a string para uma string e depois converter para um inteiro. Tinha me esquecido disto. :)
     
  7. Ruanes

    Ruanes Power Member

    ok
    no matter
    thanks
     
  8. Tyran

    Tyran Power Member

    Os números do case deviam estar entre plicas porque num é um char.
    case '0': // qualquer coisa lol
     

Partilhar esta Página