Ir ao conteúdo

Posts recomendados

Postado

Bom, antes de mais nada, queria dizer que sou um estudante de ensino médio em período integral, e bem, estou começando agora a brincar com c++, logo, sou extremamente inexperiente e faço isso pois gostei da pegada dessa linguagem. 

 

Estava programando (ou tentando programar) um app pra rodar no CMD que calculasse os zeros de uma função quadrática, o resto do código parece estar ok (ou quase isso), o problema é que os resultados dos cálculos não batem com os resultados esperados.

 

Aqui vai o código:

 

#include <iostream>
#include <math.h>
#include <cmath>
using std::sqrt;

int main(int argc, char *argv[])

{
    using std::sqrt;
    int  a, b, c, Function_confirmation, Do_again_confirmation;
    double   x1,x2;
    
    
    printf("Calculador dos zeros da funcao!\n");
    system("pause");
    system("cls");
    printf("Digite o 'a' da sua funcao: ");
    scanf("%d", &a);
    system("cls");
    printf("Digite o 'b' da sua funcao: ");
    scanf("%d", &b);
    system("cls");
    printf("Digite o 'c' da sua funcao: ");
    scanf("%d", &c);
    system("cls");
    printf("%dx^2 + %dx + %d;\n", a, b, c);
    printf("Esta e sua funcao?\n Digite 0 para confirmar e 1 para digitar novamente: ");
    scanf("%d", &Function_confirmation);
    
    if(Function_confirmation==0)
        {
            x1 = -b+sqrt((b*b-4*a*c)); x2=-b-sqrt(b*b-4*a*c);
            printf("x1 = %d e x2 = %d\n", x1, x2);
        }
      
    else
        {
            while(Function_confirmation==1)
                   {
                           system("cls");
                           printf("Digite o 'a' da sua funcao: ");
                        scanf("%d", &a);
                        system("cls");
                        printf("Digite o 'b' da sua funcao: ");
                        scanf("%d", &b);
                        system("cls");
                        printf("Digite o 'c' da sua funcao: ");
                        scanf("%d", &c);
                        system("cls");
                        printf("%d * x^2 + %d * x + %d\n", a, b, c);
                         printf("Esta e sua funcao?\n Digite 0 para confirmar e 1 para digitar novamente: ");
                         scanf("%d", &Function_confirmation);
                   }
        }
    printf("Deseja realizar outro calculo?\n Digite 0 para confirmar e 1 para sair: ");
    scanf("%d", &Do_again_confirmation);
    
    if(Do_again_confirmation==0)
        {
                system("cls");
                printf("Digite o 'a' da sua funcao: ");
                   scanf("%d", &a);
                 system("cls");
                  printf("Digite o 'b' da sua funcao: ");
                 scanf("%d", &b);
                system("cls");
                 printf("Digite o 'c' da sua funcao: ");
                scanf("%d", &c);
                  system("cls");
                  printf("%d * x^2 + %d * x + %d\n", a, b, c);
                  printf("Esta e sua funcao?\n Digite 0 para confirmar e 1 para digitar novamente: ");
                 scanf("%d", &Function_confirmation);
    
    if(Function_confirmation==0)
        {
            x1 = -b+sqrt(b*b-4*a*c); x2=-b-sqrt(b*b-4*a*c);
            printf("x1 = %d e x2 = %d\n", x1, x2);
        }
      
    else
        {
            while(Function_confirmation==1)
                   {
                           system("cls");
                           printf("Digite o 'a' da sua funcao: ");
                        scanf("%d", &a);
                        system("cls");
                        printf("Digite o 'b' da sua funcao: ");
                        scanf("%d", &b);
                        system("cls");
                        printf("Digite o 'c' da sua funcao: ");
                        scanf("%d", &c);
                        system("cls");
                        printf("%d * x^2 + %d * x + %d\n", a, b, c);
                         printf("Esta e sua funcao?\n Digite 0 para confirmar e 1 para digitar novamente: ");
                         scanf("%d", &Function_confirmation);
                   }
        }
        
    printf("Deseja realizar outro calculo?\n Digite 0 para confirmar e 1 para sair: ");
    scanf("%d", &Do_again_confirmation);
    
        }
        
        system("pause");
        return 0;
}

  • Solução
Postado

Eu testei aqui e funcionou com 

Citação

printf("x1 = %lf e x2 = %lfn", x1, x2);

Eu nunca programei em C++, só C, então não tenho certeza, mas o meu aqui só funcionou colocando

Citação

#include <stdlib.h>

#include <stdio.h>

Talvez seja isso

Correção: Acho que sei qual o seu problema. Você não está fazendo a verificação se há raízes ou não, então ele imprime lixo de memória quando o Delta é 0 ou negativo. 

Postado

Testei aqui com 1 6 9 e deu -6 e -6, mas isso porque nesse código q você postou ainda não está com o divido por 2*a.

Você não mudou alguma coisa nesse seu código?

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!