Ajuda em C

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.





Cumps.
 
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
 
Boas.
Fiz isso mas mesmo assim não dá.
Agora apareçe assim :



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,
 
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?
 
Back
Topo