Ir para conteúdo
Ds1991

Dúvida: Como fazer um programa rodar novamente?

Recommended Posts

Olá, amigos, eu me chamo Daniel e sou aluno de ADS, vamos direto ao ponto, eu gostaria de saber como eu faço para rodar esse programa novamente, resetar as informações anteriores e rodar o programa como se fosse a primeira vez (não sei se estou sendo claro o suficiente) , eu já tentei colocar o comando "system ("cls")" em várias partes do código, mas não está resolvendo, não sei mais o que fazer, agradeço a sua ajuda. Obrigado.

 

 

#include <iostream>
#include <stdlib.h>

 

using namespace std;

 

char matriz[3][3] = {'1','2','3','4','5','6','7','8','9'};
int n;
char jog = 'X';
char sair = 's';
bool s = true;

 

void Jogo(){
    system("cls");
    cout << "\n   JOGO  DA  VELHA\n\n";
    for (int a=0;a<3;a++){
       cout << "\t";
         for (int j=0;j<3;j++){
            cout << matriz[a][j]<< " ";
        }
        cout << "\n";
    }
    cout << "\n";
}

 

void Entrada(){
    int p;
    cout << "Digite um numero: ";
    cin >> p;
    
    if (p==1){
        if(matriz[0][0] == '1'){
            matriz[0][0] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==2){
        if(matriz[0][1] == '2'){
            matriz[0][1] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==3){
        if(matriz[0][2] == '3'){
            matriz[0][2] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==4){
        if(matriz[1][0] == '4'){
            matriz[1][0] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==5){
        if(matriz[1][1] == '5'){
            matriz[1][1] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==6){
        if(matriz[1][2] == '6'){
            matriz[1][2] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==7){
        if(matriz[2][0] == '7'){
            matriz[2][0] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==8){
        if(matriz[2][1] == '8'){
            matriz[2][1] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==9){
        if(matriz[2][2] == '9'){
            matriz[2][2] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
}

 

void Alterna(){
    if (jog == 'X')
        jog = 'O';
    else{
        jog = 'X';
     } 
}

 

char Vencedor(){

 

  // Jogador 1

 

    if (matriz[0][0] == 'X' && matriz[0][1] == 'X' && matriz[0][2] == 'X')
        return 'X';
    if (matriz[1][0] == 'X' && matriz[1][1] == 'X' && matriz[1][2] == 'X')
        return 'X';
    if (matriz[2][0] == 'X' && matriz[2][1] == 'X' && matriz[2][2] == 'X')
        return 'X';

 

    if (matriz[0][0] == 'X' && matriz[1][0] == 'X' && matriz[2][0] == 'X')
        return 'X';
    if (matriz[0][1] == 'X' && matriz[1][1] == 'X' && matriz[2][1] == 'X')
        return 'X';
    if (matriz[0][2] == 'X' && matriz[1][2] == 'X' && matriz[2][2] == 'X')
        return 'X';

 

    if (matriz[0][0] == 'X' && matriz[1][1] == 'X' && matriz[2][2] == 'X')
        return 'X';
    if (matriz[0][2] == 'X' && matriz[1][1] == 'X' && matriz[2][0] == 'X')
        return 'X';

 

    //Jogador2

 

    if (matriz[0][0] == 'O' && matriz[0][1] == 'O' && matriz[0][2] == 'O')
        return 'O';
    if (matriz[1][0] == 'O' && matriz[1][1] == 'O' && matriz[1][2] == 'O')
        return 'O';
    if (matriz[2][0] == 'O' && matriz[2][1] == 'O' && matriz[2][2] == 'O')
        return 'O';

 

    if (matriz[0][0] == 'O' && matriz[1][0] == 'O' && matriz[2][0] == 'O')
        return 'O';
    if (matriz[0][1] == 'O' && matriz[1][1] == 'O' && matriz[2][1] == 'O')
        return 'O';
    if (matriz[0][2] == 'O' && matriz[1][2] == 'O' && matriz[2][2] == 'O')
        return 'O';

 

    if (matriz[0][0] == 'O' && matriz[1][1] == 'O' && matriz[2][2] == 'O')
        return 'O';
    if (matriz[0][2] == 'O' && matriz[1][1] == 'O' && matriz[2][0] == 'O')
        return 'O';

 

    return 'e';
}

 

int main(){
     
   while (s == true){
         Jogo();;    
        while (true){
            n++;
            Entrada();
            Alterna();
            Jogo();
                if (Vencedor() == 'X'){
                    cout << "Jogador X Venceu!\n\n";
                    break;
                }
                else if(Vencedor() == 'O'){
                    cout << "Jogador O Venceu!\n\n";
                   break; 
                }
                else if(Vencedor() == 'e' &&     n == 9){
                    cout << "Deu empate!\n\n";
                    break;
                }              
          }
          cout << "Jogar novamente?\n(s/n): ";
          cin >> sair;
        
        if(sair == 's' || sair == 'S'){
            s = true;
        }
        else if(sair == 'n' || sair == 'N'){
            s = false;
            break;
        }
    }
    system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só usar o comando "return" para retornar a função principal do programa


#include <stdio.h>

int main(){
  int valor = 12;
  printf("%d", valor);
  valor = 40;
  return main();

 

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

  • Conteúdo Similar

    • Por Felipe Soares Santos
      Ao digitar os valores, os resultados nao sao exibidos na tela.
      obs:programa nao terminado.
       
       
       
       
      #include<iostream>
      #include<stdlib.h>
      using namespace std;
      class Pessoa{
          char nome[100];
          char cpf[50];
          char endereco[50];
          char telefone[50];
          public:
               char CadastroPessoa(char){
                  cout << "\nInforme o nome : ";
                  fflush(stdin);
                  cin>>nome;
                  fflush(stdin);
                  
              }
              char CadastroCpf(char){
                  cout << "\nInforme o cpf : ";
                  fflush(stdin);
                  cin>>cpf;
                  fflush(stdin);
              }
              char CadastroEndereco(char){
                  cout << "\nInforme o endereco : ";
                  fflush(stdin);
                  fflush(stdin);
                  cin>>endereco;
              }
              char CadastroTelefone(char){
                  cout << "\nInforme o telefone : ";
                  fflush(stdin);
                  cin>>telefone;
              }
      };
      class Funcionario: public Pessoa{
          int horario, HorasExtras;
          int num_matricula;
          public:
              int func_horario(int){
                  cout << "\nInforme o horario do funcionario : ";
                  fflush(stdin);
                  cin >>horario;
                  return(horario); 
              }
              int func_horaExtra(int){
                  cout << "\nInfome o numero de horas extras : ";
                  fflush(stdin);
                  cin >> HorasExtras;
                  return(HorasExtras);
              }
              int func_numMatricula(int){
                  cout <<"\nInfome o numero de matricula";
                  fflush(stdin);
                  cin>>num_matricula;
                  return(num_matricula);
              }
      };
      class Professor:public Pessoa{
          char materia[100], data_admissao[30]; 
          int salario;
          public:
              char Prof_materia(char){
                  cout<<"\nInforme a materia lecionada pelo professor : ";
                  fflush(stdin);
                  cin>>materia;
                  
              }
              char Prof_DataAdmi(char){
                  cout<<"\nInforme a data de adimissao do professor : ";
                  fflush(stdin);
                  cin>>data_admissao;
              }
              int Prof_Salario(string){
                  cout<<"\nInforme o salario do professor :";
                  fflush(stdin);
                  cin>>salario;
                  return(salario);
              }
      };
      class Aluno:public Pessoa{
          string turma, curso, mate_matri; 
          int ch;
          public:
              string Aluno_turma(string){
                  cout<<"\nInforme a turma do aluno : ";
                  cin>>turma;
                  return(turma);
              }
              string Aluno_curso(string){
                  cout<<"\nInforme o curso do aluno ";
                  cin>>curso;
                  return(curso);
              }
              string Aluno_Materia_matri(string){
                  cout<<"\nQuais materias o aluno esta matriculado ? ";
                  cin>>mate_matri;
                  return(mate_matri);
              }
              int Aluno_CH(string){
                  cout<<"\nQual a carga horaria do aluno ? ";
                  cin>>ch;
                  return(ch);
              }
      };
      int main(){
          char x;
          int menu; 
          int a;
          Funcionario f1;
          Professor p1;
          Aluno a1;
          cout<<"\nInforme o numero de cadastro que deseja inserir : ";
          cin>>a;
          char vn[a], vcp[a],vend[a],vtele[a],vhor[a],vnmat[a],vext[a],vmat[a],vdaad[a],vsala[a],vtur[a],vcurso[a],vmatric[a],vch[a];
          
          do{
              cout<<"\nDigite 1 para cadastrar FUNCIONARIO --- 2 Para cadastrar PROFESSOR --- 3 Para cadastrar ALUNO ";
              cin>>menu;
              switch(menu){
                  case 1:
                      for(char i=1; i<=a; i++){
                          cout<<"\n***FUNCIONARIO" << i << "****" ;
                          vn=f1.CadastroPessoa(x);
                          vcp=f1.CadastroCpf(x);
                          vend=f1.CadastroEndereco(x);
                          vtele=f1.CadastroTelefone(x);
                          vhor=f1.func_horario(x);
                          vext=f1.func_horaExtra(x);
                          vnmat=f1.func_numMatricula(x);
                      }
                      for(int i=1; i<=a;i++){
                          cout<<"\---nPara funcionario"<<i;
                          fflush(stdin);
                          cout<<"\nNome : " << vn;
                          fflush(stdin);
                          cout<<"\nCPF : " << vcp;
                          fflush(stdin);
                          cout<<"\nEndereco : " <<vend;
                          fflush(stdin);
                          cout<<"\nTefone para contado : " << vtele;
                          fflush(stdin);
                          cout<<"\nHorario de trabalho : " <<vhor;
                          fflush(stdin);
                          cout<<"\nHoras extras do funcionario : " << vext;
                          fflush(stdin);
                          cout <<"\nNumero de matricula do funcionario : "<< vnmat;
                          fflush(stdin);
                      }
                      break;
                      
              }
          } while(menu!=1);
      }
       
    • Por ph1
      //#include <iostream>
      #include <cstdlib>
      #include <stdio.h>
      using namespace std;
      int main()
      {
      setlocale(LC_ALL, "Portuguese");
      int a,b,c,d,i,e,f,g,h;
      cout << "Entre com os valores da primeira fracao: ";
      cin >> a;
      cin >> b;
      cout << "Entre com os valores da segunda fracao: ";
      cin >> c;
      cin >> d;
      e = ((a*d)+(b*c));
      f = b * d;
      congela aqui: cout << "A soma das fracoes é:  " << e << "/" << f << "\n";
      //i = 0;
      //if (e % i == 0) || (f % i == 0) //dessa forma não pode, parenteses isolados.
      if (e % i == 0 || f % i == 0)//correto
      //if ((e % i == 0) || (f % i == 0))//correto
           cout << "A simplificação nao é possivel\n";
      /*
      for (i=2;i<=10;i++)
      {
       if((e % i != 0) || (f % i != 0))
          {
             g = e / i;
             h = f / i;
             cout << "\nO resultado da simplificação da fracao é:\n  " << g << "/" << h;
          }
      */
      system("pause");
      return 0;
      }
      }
      Tentei de vários maneiras, e descobri  que quando chega para mostrar o resultado da fração, o programa congela, não sei qual o motivo, para mim está montado certo. Será que é o tipo de variável? Obrigado.
    • Por nummularius
      Salve, meus amigos!
      Estou começando meus estudos em programação, ainda na fase de lógica da programação.
      O código abaixo é para executar a seguinte tarefa: pegar, através do input (id = "inputValor" no HTML) três valores numéricos, através da função insereValor, colocar esses valores no array recebeValor e depois fazer a média desses valores.
       
      Limitei a função insereValor em 3 valores, e depois a função mediaFunc faz a média desses 3 valores.
      O problema: parece que o loop (while) só retorna o primeiro valor como numérico, os outros valores surgem como isNaN = true. Ou seja, não tenho como fazer o cálculo de média, pois o resultado da NaN.
       
      O que estou fazendo de errado?
      Obrigado.
       
      <meta charset = "UTF-8"> <input id = "inputValor" /> <button id = "botaoInsere">Inserir</button> <p id = "pegaTexto"></p> <script type="text/javascript"> function mediaFunc(v1, v2, v3){ var media = parseInt((v1 + v2 + v3) / limite); return media; } function insereValor(){ while(posicao < limite) { //pega o valor inputado no campo em branco. recebeValor.push(parseInt(document.getElementById("inputValor").value)); //acrescenta uma posição no array. Ou seja, vai para a próxima posição. posicao++; inputValor.focus(); return recebeValor; } mediaFunc(); inputValor.focus(); } var posicao = 0; var limite = 3; var recebeValor = []; var botaoInsere = document.getElementById('botaoInsere'); botaoInsere.onclick = insereValor; </script>  
    • Por enzofornetti
      Olá pessoas. Estou começando em programação, c++. Fui tentar realizar um loop em uma programação antiguinha minha. Mas, no final, o programa não "usa" o scanf e volta para o começo. Podem me dizer o problema? Já agradeço a paciência aushuahs
       
       
      #include <stdio.h>
      #include <conio.h>
      #include <stdlib.h>
      #include <math.h>
      int main()
      {
          float v;
          float i;
          float r;
          char op,ob;
          int banana = 1;
          
          while(banana = 1)
          {
          
          printf("Eae meu brother, o que deseja calcular?\n\nCorrente - digite 'i' e pressione Enter\nDDP - digite 'v' e pressione Enter\nResistencia - digite 'r' e pressione Enter\n");
          scanf("%c",&op);
          
          if(op == 'v')
          {
              printf("Resistencia: ");
              scanf("%f", &r);
              
              printf("Corrente: ");
              scanf("%f", &i);
              
              v=r*i;
              
              printf("DDP: %0.8f",v);
              
              printf("\nEletro > Info > Mecanica");
          }
          else
          {
              if(op == 'i')
              {
                  printf("DDP: ");
                  scanf("%f",&v);
                  
                  printf("Resistencia: ");
                  scanf("%f",&r);
                  
                  i=v/r;
                  
                  printf("Corrente: %0.8f",i);
                  printf("\nEletro > Info > Mecanica");
              }
              else
              {
                  if(op == 'r')
                  {
                      printf("Corrente: ");
                      scanf("%f",&i);
                      
                      printf("DDP: ");
                      scanf("%f",&v);
                      
                      r=v/i;
                      
                      printf("Resistencia: %0.8f",r);
                      printf("\nEletro > Info > Mecanica");
                   
                  }
                  else
                  {
                      printf("Brother, recomece");
                  }
              }
              
          }
          printf("\n\nDeseja calcular novamente?\n\nn - Nao\ns - Sim\n");
          scanf("%c",&ob);
          
          if(ob == 's')
          {
              banana = 1;
          }
          else
          {
              banana = 2;
          }
      }
      }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.