Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com switch


RZatti

Pergunta

Boa noite..

Meu problema: estou terminando um quadrado magico e meu ultimo problema é que não consigo usar o case 9 sem que o programa faça as somas e aplique as regras do jogo. já sei que meu problema é no laço for necessario para o continue em cada case. Alguma sugestao?

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


void impMat(void)
{    
     int i,j;
     int M[3][3];
     for(int i=0; i<3; i++)
     for(int j=0; j<3; j++)
     M[i][j] = (i*3)+j+1;

     for(int i=0; i<3; i++)
     {
             for(int j=0; j<3; j++)
             printf("\tP%d", M[i][j]);
             printf("\n\n\n");
     }
}

void alteraMat(int N[3][3])
{    

     for(int i=0; i<3; i++)
     {
             printf("\t\t\t\t");
             for(int j=0; j<3; j++)
             printf("\t%d", N[i][j]);
             printf("\n\n\n");
     }
}

void iniciaMat(int X[3][3])
{
   int i, j;  
     for(int i=0; i<3; i++)
     for(int j=0; j<3; j++)
       X[i][j] = 0;
}

int main(void)
{
     int i, j, n, num[3][3]; 
     int opcao;
     int contl1, contl2, contl3, contc1, contc2, contc3, contdp, contds;

    
    iniciaMat(num);
    impMat();
    
    for(opcao=0; opcao<10; opcao++)
    {
    
    printf("\n\tEscolha uma posicao entre 1 e 9: ");
    scanf("%d",&opcao);          
    switch(opcao)
    {
                 case 1:
                      printf("\n\tDigite o valor: ");
                      scanf("%d", &n);
                      num[0][0]=n;
                      system("cls");
                      impMat();
                      alteraMat(num);
                      continue;            
                      
                 case 2:
                      printf("\n\tDigite o valor: ");
                      scanf("%d", &n);
                      num[0][1]=n;
                      system("cls");
                      impMat();
                      alteraMat(num);
                      continue;  
                      
                 case 3:
                      printf("\n\tDigite o valor: ");
                      scanf("%d", &n);
                      num[0][2]=n;
                      system("cls");
                      impMat();
                      alteraMat(num);
                      continue;  
                      
                 case 4:
                      printf("\n\tDigite o valor: ");
                      scanf("%d", &n);
                      num[1][0]=n;
                      system("cls");
                      impMat();
                      alteraMat(num);
                      continue;  
                      
                 case 5:
                      printf("\n\tDigite o valor: ");
                      scanf("%d", &n);
                      num[1][1]=n;
                      system("cls");
                      impMat();
                      alteraMat(num);
                      continue;
                      
                 case 6:
                      printf("\n\tDigite o valor: ");
                      scanf("%d", &n);
                      num[1][2]=n;
                      system("cls");
                      impMat();
                      alteraMat(num);
                      continue;  
                      
                 case 7:
                      printf("\n\tDigite o valor: ");
                      scanf("%d", &n);
                      num[2][0]=n;
                      system("cls");
                      impMat();
                      alteraMat(num);
                      continue;  
                      
                 case 8:
                      printf("\n\tDigite o valor: ");
                      scanf("%d", &n);
                      num[2][1]=n;
                      system("cls");
                      impMat();
                      alteraMat(num);
                      continue;  
                      
                 case 9:
                      printf("\n\tDigite o valor: ");
                      scanf("%d", &n);
                      num[2][2]=n;
                      system("cls");
                      impMat();
                      alteraMat(num);
                      continue;
                      
                      default:
                 system ("cls");
                 printf("\n\n\n\t\t               ESTA OPCAO não EXISTE");
                 printf("\n\n\n\n\t\tNinguem mandou digitar errado! O programa sera fechado!");
                 getch();
                 exit(0);
                 
         
                      }
                 }
                      
     contl1=num[0][0]+num[0][1]+num[0][2];
     contl2=num[1][0]+num[1][1]+num[1][2];
     contl3=num[2][0]+num[2][1]+num[2][2];
     contc1=num[0][0]+num[1][0]+num[2][0];
     contc2=num[0][1]+num[1][1]+num[2][1];
     contc3=num[0][2]+num[1][2]+num[2][2];
     contdp=num[0][0]+num[1][1]+num[2][2];
     contds=num[0][2]+num[1][1]+num[2][0];
     
    {
    if(contl1==contl2 && contl3==contc1 && contc2==contc3 && contdp==contds)

    printf("\n\n\tPARABENS. Voce formou um quadrado magico!\n\n\t");
     
     else
     
     printf("\n\tVoce perdeu!\n\n\t");
}
                               
     getch();
    
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...