1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em C

Discussão em 'Programação' iniciada por d4nd, 16 de Novembro de 2012. (Respostas: 4; Visualizações: 662)

  1. d4nd

    d4nd Power Member

    Boas

    Começei em C a pouco tempo e estou aqui a a tentar fazer um pequeno programa que calcula a area de um quadrado/retângulo.


    Código:
    #include<stdio.h>
    #include<stdlib.h>
    
    
    int main () {
        char n;
        char s;
        int comp,larg,total;
        
        printf ("Com este programa pode calcular:\nAr%cas e Per%cmetros de alguns S%clidos Geom%ctricos!\n\n\n",130,161,224,130);
        
        
        printf ("Primeiro escolha o s%clido que quer calcular:\nClique r para o ret%cngulo e Clique q para o quadrado.\n\n\n",224,131);
        scanf ("%c",&n);
        
        switch (n) {
               case 'r':
                     printf ("Escolheu o ret%cngulo!\nAgora se quiser calcular o per%cmetro em p\nSe quiser calcular a ar%ca clique em a\n\n\n",131,161,130);
                     scanf  ("%c",&s);
                     break;
               case 'q':
                    printf  ("Escolheu o Quadrado!\nAgora se quiser calcular o per%cmetro em p\nSe quiser a ar%ca:\nclique em a\n\n\n",161,130);
                    scanf   ("%c",&s);
                    break;
               default:
                    printf  ("Opcao errada, escolha outra letra");
                    break;
                    
       switch (s) {
             case 'p':
                  printf("Digite um comprimento\n");
                  scanf ("%d",comp);
                  printf("Digite uma largura\n");
                  scanf ("%d",larg);
                  total=larg+larg+comp+comp;
                  printf("O resultado %c %d\n",130,total);
                  break;
             case 'a':
                  printf("Digite um comprimento\n");
                  scanf ("%d",comp);
                  printf("Digite uma largura\n");   
                  scanf ("%d",larg);
                  total=larg*comp;
                  printf("O resultado %c %d\n",130,total);
                  break;
             default:
                  printf("Opcao errada escolha outra letra");
                  break;
                  
    }                 
    }                      
                   
                             
        
      
        system("pause");
        
        
    }
        
        
    
    O que aconteçe é que quando chega a parte de o utilizadoe escolher se quer o perimetro ou a area o programa encerra.

    [​IMG]



    Cumps.
     
  2. mauro1855

    mauro1855 I'm cool cuz I Fold

    Estás a pôr o switch dentro do outro switch.
    A partir do momento que chegas ao break;, o programa salta para fora do domínio daquele primeiro switch, nunca chega a executar o segundo.
    Assim sendo, tens de meter um switch a seguir ao outro e não dentro do primeiro.

    Cumps
     
  3. d4nd

    d4nd Power Member

    Boas.
    Fiz isso mas mesmo assim não dá.
    Agora apareçe assim :

    [​IMG]

    Quando por exemplo meto q para ir para as opções do quadrado o programa diz que a opção está errada e nem deixa escolher se o utilizador quer a area ou o perimetro.

    Cumps,
     
  4. Psycop

    Psycop I fold therefore I AM

    Não implementei totalmente a aplicação, apenas fiz a parte dos menus.

    Código:
    #include<stdio.h>#include<stdlib.h>
    
    
    
    
    int main () {
        int escolha = 0, escolha_1 = 0;
        int comp_rec = 0,larg_rec = 0,total_rec = 0, comp_qua = 0, larg_qua, total_qua = 0;
    
    
        printf ("Com este programa pode calcular:\nArecas e Perimetros de alguns Solidos Geometricos!\n\n\n");
    
    
        do
        {
            printf("1 - Quadrado: \n");
            printf("2 - Rectangulo: \n");
            printf("Escolha: ");
            scanf("%d", &escolha);
    
    
            switch(escolha)
            {
                case 1:
                {
                    printf("1 - Quadrado: \n");
    
    
                    do
                    {
                        printf("1 - Area\n");
                        printf("2 - Perimetro\n");
                        printf("Escolha: ");
                        scanf("%d", &escolha_1);
    
    
                        switch(escolha_1)
                        {
                            case 1:
                            {
                                break;
                            }
    
    
                            case 2:
                            {
                                printf("2 - Perimetro\n");
                                break;
                            }
    
    
                            default:
                            {
                                printf("Opção Errada");
                                break;
                            }
                        }
                    }while(escolha_1 != 2);
    
    
    
    
                }
    
    
                case 2:
                {
                    printf("1 - Rectangulo: \n");
    
    
                    do
                    {
                        printf("1 - Area\n");
                        printf("2 - Perimetro\n");
                        printf("Escolha: ");
                        scanf("%d", &escolha_1);
    
    
                        switch(escolha_1)
                        {
                            case 1:
                            {
                                printf("1 - Area\n");
                                break;
                            }
    
    
                            case 2:
                            {
                                printf("2 - Perimetro\n");
                                break;
                            }
    
    
                            default:
                            {
                                printf("Opção Errada");
                                break;
                            }
                        }
                    }while(escolha_1 != 2);
                }
    
    
                default:
                            {
                                printf("Opção Errada");
                                break;
                            }
            }
    
    
        }while(escolha!=2);
    
    
        system("pause");
    
    
    
    
    }
    
    
    
    Porque não assim?
     
  5. d4nd

    d4nd Power Member

Partilhar esta Página