Ir para conteúdo
ph1

Programa após compila mas trava na execução.

Recommended Posts

//#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.

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 Marcelobpc
      Boa tarde pessoal,
      estou tendo muita dificuldade para criar um algoritmo que eu entre com um numero de 0 a 100 e ele me informe quantos números pares tem no intervalo do numero que digitei até 0 e caso o numero digitado for maior que 100 ele solicite que seja digitado o numero de 0 a 100 novamente.
    • Por manoelahech
      Boa noite pessoal, estou a mais de 3 semanas com um trabalho e está impossivel resolver. Segue a questão
      // Escreva um programa que leia 4 arquivos de numeros inteiros, calcule a média.
      //Mostre o maior quadrado que seja menor que a média de todos os números maiores que a média dos números de cada um dos arquivos.
      //Ex: Média dos números do arquivo 01 = 35
      //Números do arquivo 01 que são maiores que 35 = Ni...Nn
      //Maior quadrado entre os N números do arquivo 01 = x.
      A baixo vou colocar 2 tentativas que não saem da parte de calcular a media, como posso calcular a segunda parte??
      TENTATIVA 01
      #include <stdio.h>
      #include <stdlib.h>
      main(){

      FILE *numeros, *maior, *menor, *medio;
      int numero;
      float media;
      //abertura dos arquivos
      numeros = fopen ("numeros.txt", "r");
      maior = fopen ("maior.txt", "w" );
      medio = fopen ("medio.txt" , "w");
      menor = fopen ("menor.txt" , "w");
      //leitura dos dados e gravação do arquivo 
      while (fscanf (numeros , "%i %f" , &numero , &media)!= EOF){
      if (media >= 6)
      fprintf (maior,"%i %4.1f\n",numero,media);
      else
      fprintf (medio,"%i %4.1f\n",numero,media);

      //fechando os arquivos
      fclose (numeros);
      fclose (maior);
      fclose (medio);
      fclose (menor);
      }
      TENTATIVA 02 (ACHO QUE A MELHOR)
      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>
      #include <stdlib.h>
      #define TAM_MED 50  //tamanho na média
      #define M 4 //número de arquivos
      #define TRUE 1
      #define FALSE 0

      int leitura( int id, int medi){
          
          int id_num, id_num2, id_num3, id_num4;
          int med;
          
          FILE* numeros = fopen ("numeros.txt","r");
          FILE* numeros2 = fopen ("numeros2.txt", "r");
          FILE* numeros3 = fopen ("numeros3.txt", "r");
          FILE* numeros4 = fopen ("numeros4.txt", "r");
          
          
          
          if (numeros != NULL){
              while (fscanf(numeros, "%d\n", &id_num, med) != EOF){  //End of file
                  printf("%d\n", id_num, med);
              }
              
                  if (numeros != NULL){
              while (fscanf(numeros2,"%d\n", &id_num2,med) != EOF){  //End of file
                  printf("%d\n", id_num2,med);
              }
              
                      if (numeros != NULL){
              while (fscanf(numeros3,"%d\n", &id_num3,med) != EOF){  //End of file
                  printf("%d\n", id_num3,med);
              }
              
                  if (numeros != NULL){
              while (fscanf(numeros4,"%d\n", &id_num4,med) != EOF){  //End of file
                  printf("%d\n", id_num4,med);
              }
          }
         fclose (numeros);
         fclose (numeros2);
         fclose (numeros3);
         fclose (numeros4);
         
         return 0;
      }
      }
      }
      }
      int main(){
          
          int id_num, id_num2, id_num3, id_num4;
          
          printf("Digite o primeiro numero: %d");
          scanf("%d", &id_num);
          printf("Digite o segundo numero: %d");
          scanf("%d", &id_num2);
          printf("Digite o terceiro numero: %d");
          scanf("%d", &id_num3);
          printf("Digite o quarto numero: %d");
          scanf("%d", &id_num4);
          
             printf("Media: %f", (float) (id_num + id_num2+ id_num3+ id_num4)/4);
             return 0;
             
             
      }
       
    • Por Marcelo Lopes Vidal
      #include<stdio.h> #include<string.h> #include<stdlib.h> struct aluno { char nome[20]; char endereco[50]; char data_de_nascimento[10]; char telefone[15]; float nota1; float nota2; }; struct aluno recadastramento(struct aluno valuno[10]); void media_das_notas(struct aluno valuno[10]); void aprovado_ou_reprovado(struct aluno valuno[10]); void mostrar_informacoes(struct aluno valuno[10]); int main(void) { struct aluno valuno[10]; int op; float media; int i; int j; printf("Digite as informacoes dos alunos"); for(i=1;i<11;i++) { printf("Digite O Nome Do Aluno[%d]\n\n",i); printf("Nome: "); fflush(stdin); gets(valuno[i].nome); printf("\nDigite O Endereco Do Aluno[%d]\n\n",i); printf("Endereco: "); fflush(stdin); gets(valuno[i].endereco); printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i); printf("Data De Nascimento: "); fflush(stdin); gets(valuno[i].data_de_nascimento); for(j=0;j <15; j++) { if(valuno[i].data_de_nascimento[2] != '/' && valuno[i].data_de_nascimento[5] != '/') { printf("ERRO! Digite novamente"); printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i); gets(valuno[i].data_de_nascimento); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite O Telefone Do Aluno [%d] No Formato <(DDD)00000-0000>\n\n",i); printf("Telefone Do Aluno: "); fflush(stdin); gets(valuno[i].telefone); for(j=0;j <15; j++) { if(valuno[i].telefone[0] != '(' && valuno[i].telefone[4] != ')' && valuno[i].telefone[10] != '-') { printf("ERRO! Digite novamente"); printf("Digite O Telefone Do Aluno [%d]: ",i); gets(valuno[i].telefone); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite A Primeira Nota Do Aluno [%d]\n\n",i); printf("Nota 1: "); scanf("%f",&valuno[i].nota1); printf("\nDigite A Segunda Nota Do Aluno [%d]\n\n",i); printf("Nota 2: "); scanf("%f",&valuno[i].nota2); } do { printf("\nMENU\n"); printf("- 1)Editar informações dos alunos \n 2)Mostrar as medias dos alunos \n 3)Dizer se os alunos foram aprovados medias >= 6 ou reprovados (medias <6)\n 4)Listar todas as informações dos alunos"); printf("\n\nOpcao::: "); scanf("%d",&op); switch(op) { case 1: recadastramento(valuno); break; case 2: media_das_notas(valuno); break; case 3: aprovado_ou_reprovado(valuno); break; case 4: mostrar_informacoes(valuno); break; default: printf("\nOpcao INVALIDA\n"); break; } }while(op > 0 && op < 5); } struct aluno recadastramento(struct aluno valuno[10]) //recadastramento de informações//Funções { int i; for(i=1;i<11;i++) { printf("\nDigite O Nome Do Aluno [%d]\n\n",i); printf("Nome: "); fflush(stdin); gets(valuno[i].nome); printf("\nDigite O Endereco Do Aluno [%d]\n\n",i); printf("Endereco: "); fflush(stdin); gets(valuno[i].endereco); printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i); printf("Data De Nascimento: "); fflush(stdin); gets(valuno[i].data_de_nascimento); int j; for(j=0;j < 11; j++) { if(valuno[i].data_de_nascimento[2] != '/' && valuno[i].data_de_nascimento[5] != '/')//validção de data no formato correto { printf("ERRO! Digite novamente"); printf("\nDigite A Data De Nascimento Do Aluno [%d]No Formato <00/00/0000>\n\n",i); gets(valuno[i].data_de_nascimento); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite O Telefone Do Aluno [%d] No Formato <(DDD)00000-0000>\n\n",i); printf("Telefone Do Aluno: "); fflush(stdin); gets(valuno[i].telefone); for(j=0;j <15; j++)//validção de numero no formato correto { if(valuno[i].telefone[0] != '(' && valuno[i].telefone[4] != ')' && valuno[i].telefone[10] != '-') { printf("ERRO! Digite novamente"); printf("Digite O Telefone Do Aluno [i]: ",i); gets(valuno[i].telefone); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite A Primeira Nota Do Aluno [%d]\n\n",i); printf("Nota 1: "); scanf("%f",&valuno[i].nota1); printf("\nDigite A Segunda Nota Do Aluno [%d]\n\n",i); printf("Nota 2: "); scanf("%f",&valuno[i].nota2); } } void media_das_notas(struct aluno valuno[10])//media de notas { int i; for(i=1;i<11;i++) { float media; media = (valuno[i].nota1 + valuno[i].nota2) / 2; printf("Media: %.2f\n",media); } } void aprovado_ou_reprovado(struct aluno valuno[10])//se foi aprovado ou reprovado { int i; for(i=1;i<11;i++) { float media; media = (valuno[i].nota1 + valuno[i].nota2) / 2; if(media >= 6) { printf("\nAluno [%d] APROVADO\n",i); } else { printf("\nAluno [%d] REPROVADO\n",i); } printf("\nMedia do Aluno[%d]: %.2f\n",i,media); } } void mostrar_informacoes(struct aluno valuno[10])//mostrando informções de cadastro { int i; for(i=1;i<11;i++) { printf("-Listagem Do Aluno[%d]",i); printf("\n\nNome do Aluno[%d]: %s",i,valuno[i].nome); printf("\nEndereco do Aluno[%d]: %s",i,valuno[i].endereco); printf("\nData De Nascimento do Aluno[%d]: %s",i,valuno[i].data_de_nascimento); printf("\nTelefone do Aluno[%d]: %s",i,valuno[i].telefone); printf("\nNota 1 do Aluno[%d]: %.2f ",i,valuno[i].nota1); printf("\nNota 2 do Aluno[%d]: %.2f ",i,valuno[i].nota2); } } //Fim Do Codigo  
    • Por igordobrianskyj
      pessoal, tenho o seguinte código.

      a idéia é fazer o gerenciador de tarefas ficar oculto, pelo seu nome da janela, e não pelo processo; pois pelo processo, alguns usuários estão abrindo-o com nomes diferentes de taskmgr.exe.

      o código minimiza qualquer programa pelo nome definido, porém ao tentar ocultar o gerenciador, não minimiza.. como se o nome do Gerenciador de Tarefas não fosse esse.

      alguém pode me dizer onde estou errando?

       
      ShowWindow(FindWindow(NULL,"Gerenciador de Tarefas"),SW_MINIMIZE);

       
    • Por matt.valenzza@gmail.com
      Preciso fazer uma lista duplamente encadeada para ela inserir os números, mostrando eles, localizar em qual posição eles estão e excluir. Eu fiz o código, mas preciso que os números mostrem o número atual, o anterior e o próximo. Que na hora de compilar, que ele mostre o numero anterior, o atual e o próximo em um pequeno menuzinho.
       
      Segue o código que eu criei até agora. 
       
       
       
       
      #include <stdio.h> struct Lista{ int num; struct Lista *prox; struct Lista *ant; }; struct Lista* criarNovoElemento(){ struct Lista *novo = NULL; novo = malloc(sizeof(struct Lista)); printf("Informe o numero..: "); scanf("%i", &(*novo).num); (*novo).prox = NULL; return novo; } inserir (struct Lista **a){ if (*a == NULL){ *a = criarNovoElemento(); } else{ struct Lista *aux; aux = *a; while( (*aux).prox != NULL){ aux = (*aux).prox; } (*aux).prox = criarNovoElemento(); } } mostrar(struct Lista **a){ if (*a == NULL){ printf("\n....Cadastro vazio....\n"); } else{ struct Lista *aux; aux = *a; while( aux != NULL){ printf("\nAtual..: %i", (*aux).num); aux = (*aux).prox; } } printf("\n"); system("pause"); } localizar (struct Lista **a){ if (*a == NULL){ printf("\n....Cadastro vazio....\n"); } else{ int num = 0; int achei = 0; int cont = 0; printf("Informe o numero: "); scanf("%i", &num); struct Lista *aux; aux = *a; while( aux != NULL && achei == 0){ cont += 1; if ((*aux).num == num){ achei = 1; } aux = (*aux).prox; } if (achei == 1){ printf("\n.....Achei na posicao: %i.....\n", cont); } else{ printf("\n.....Nao Achei....\n"); } } printf("\n"); system("pause"); } excluir(struct Lista **a){ if (*a== NULL){ // verificar se existe algum elemento na lista printf("\n....Cadastro vazio....\n"); } else{ struct Lista *aux =*a; a= (**a).prox; free(aux); } printf("\n"); system("pause"); } main (){ struct Lista *inicio = NULL; int opcao = 0; while(opcao != 9){ system ("cls"); printf("\n[1] Inserir Elemento"); printf("\n[2] Mostrar Elemento"); printf("\n[3] Localizar Elemento"); printf("\n[4] Excluir "); printf("\n[9] Finalizar"); printf("\nInforme a opcao: "); scanf("%i", &opcao); switch(opcao){ case 1 : inserir(&inicio); break; case 2 : mostrar(&inicio); break; case 3 : localizar(&inicio); break; case 4 : excluir(&inicio); break; case 9 : printf("Programa finalizado"); } } }  
×

Informação importante

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