Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
int X, Y, resp;

int soma1()
{

 printf("\n Digite o primeiro numero:");
  scanf ("%f",&X);
    printf("\n Digite o segundo numero:");
   scanf ("%f",&Y);
   resp = X + Y;
    printf("%f", &resp);
 
}

int subitracao()
{

 printf("\n Digite o primeiro numero:");
  scanf ("%f",&X);
    printf("\n Digite o segundo numero:");
   scanf ("%f",&Y);
  resp = X - Y;
   
    
}

int mult()
{

 printf("\n Digite o primeiro numero:");
  scanf ("%f",&X);
    printf("\n Digite o segundo numero:");
   scanf ("%f",&Y);
resp = X * Y;
     printf("%f", &resp);
}

int div()
{
 if(Y <= 0 )
 {
    printf("Divisão por 0");
  }
 printf("\n Digite o primeiro numero:");
  scanf ("%f",&X);
    printf("\n Digite o segundo numero:");
   scanf ("%f",&Y);
resp = X + Y;

     printf("%f", &resp);
}
int main (void )
{
  int valor;
  
  printf ("Calculadora");
  printf ("1 para soma \n\t 2 para subitracao \n\t 3 para multiplicacao \n\t 4 divisao\n\t");
  scanf("%d", &valor);
  
  switch ( valor )
  {
    case 1 :
    soma1();
    break;
    
    case 2 :
    subitracao();
    break;
    
    case 3 :
    mult();
    break;
    
    case 4 :
    div();
    break;
    
    
    default :
    printf ("Valor invalido!\n");
  }
  
  getch();
  return 0;
}

 

  • Curtir 1
Postado

@farfzim0 Sem informação do que quer fazer fica mais difícil te ajudar, mas olhando por cima encontrei os seguintes problemas: printf("%f", &resp);. Suponho que queira fazer printf("%f", resp);; e as variáveis são do tipo int, mas você está tratando-as como se fossem do tipo float. Mas se não for isso coloque mais informações.

  • Curtir 2
Postado

@farfzim0   o que o @allanxd   disse e mais organização :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <conio.h>
#define  u GetStdHandle(STD_OUTPUT_HANDLE)
#define gotoxy_2(x,y) {COORD c={x,y};SetConsoleCursorPosition(u,c);}
#define textcolor_2(l,f) SetConsoleTextAttribute(u,l+(f<<4));
float X,Y,resp;
using namespace std;
void animacao(){
    cout<<"      ";
    while( ! kbhit()){
        cout<<"|\b" ;Sleep(150);
        cout<<"/\b" ;Sleep(150);
        if(kbhit())  break     ;
        cout<<"-\b" ;Sleep(150);
        cout<<"\\\b";Sleep(300);
        if(kbhit())  break     ;
    }
}
int soma(){
    /*printf("\n Digite o primeiro numero:"); -|
    scanf ("%f",&X);                           |-- não precisa repetir em todas
    printf("\n Digite o segundo numero:");     |
    scanf ("%f",&Y);                      ------   */
    resp = X+Y;
    textcolor_2(14,0);
    printf("\n Resulado da soma de %.2f X %.2f -> %.2f\n\n",
           X,Y,resp);
}
int subitracao(){
    resp = X-Y;
    textcolor_2(11,0);
    printf("\n Resulado da Subtra%c%co de %.2f X %.2f -> %.2f\n\n",
           135,198,X,Y,resp);
}
int mult(){
    resp = X*Y;
    textcolor_2(10,12);
    printf("\n Resulado da Multiplica%c%co de %.2f X %.2f -> %.2f  \n\n",
           135,198,X,Y,resp);
}
int div(){
    if(Y <= 0 ){
        textcolor_2(12,14);
        printf("Imposs%cvel Divis%co por 0 . . . !\n\n",
               161,198);
        return 0;
    }
    resp = X/Y;
    textcolor_2(12,15);
    printf("\n Resulado da Divis%co de %.2f X %.2f -> %.2f  \n\n",
           198,X,Y,resp);
}
int main(){
    int valor;
    do{
        textcolor_2(14,0);
        printf ("\tCalculadora\n\n");
        textcolor_2(11,0);
        printf("1 - Soma\n");
        printf("2 - Subitra%c%co\n",135,198);
        printf("3 - Multiplica%c%co\n",135,198);
        printf("4 - Divis%co\n",198);
        printf("5 - Terminar o Programa\n");
        textcolor_2(14,0);
        printf("    op%c%co => ",135,198);
        textcolor_2(11,0);
        scanf ("%d",&valor);
        if(valor == 5)break;
        printf(" Digite o primeiro numero : ");
        scanf ("%f",&X);
        printf(" Digite o segundo numero  : ");
        scanf ("%f",&Y);
        switch( valor ){
        case 1 :
            soma();
            break;
        case 2 :
            subitracao();
            break;
        case 3 :
            mult();
            break;
        case 4 :
            div();
            break;
        case 5 :
            break;
        default :
            printf("Valor invalido . . . !\n");/* esse aqui é da linguagem c   */
        }
    }while( 1 );
    cout<<"\n    Tecle . . . !\n"<<endl;       /* esse aqui é da linguagem c++ */
    animacao();
    getch();
    textcolor_2(10,12);
    return 0;
}

 

Postado
2 horas atrás, farfzim0 disse:

É que eu tava muito chateado por conta do programa não estar funcionando

 

Vai se acostumando, porque isso é normal. A cada 10 códigos que a gente escreve, 11 não funcionam 🤣.

O segredo é não desistir e levar na boa 😎.

  • Curtir 1
Postado
Citação

subitracao

 

foi mal... Escreva subtracao

 

Acentos e cores nada acrescentam ao seu programa. Sempre escrevo isso então aí vai de novo...

 

Funções são mais úteis quando mais genéricas. Receba os valores como parâmetro e retorne o resultado. Faça o simples. 

 

Exemplo

float multiplica(float a, float b)
{
    return a * b;
}

É bem mais esperto que 

int mult(){
    resp = X*Y;
    textcolor_2(10,12);
    printf("\n Resulado da Multiplica%c%co de %.2f X %.2f -> %.2f  \n\n",
           135,198,X,Y,resp);
}

Que retorna um int e você nem retorna nada.

E não imprima os valores dentro de uma função, pelo mesmo motivo: pra que uma função que usa variáveis externas X e Y só essas e imprime de um certo fixo modo? Não é para isso que as funções existem e não é para isso que esse exercício foi escrito.

 

Se você usar a função que eu mostrei pode por exemplo escrever

float total = multiplica(2,4) + multiplica(1,2);

e total vai ficar com 10, como esperado. Direto no código. Se usar essa mult() que escreveu não vai a lugar algum...

 

Mais ainda, imagine uma função assim

float calculadora( int operadorA, char operador, int operandoB);

E você poderia chamar assim

float total = calculadora(1,'+', 3) + calculadora(2, '*', 8);

por exemplo e ficaria bem mais genérico, certo?

 

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

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