Jump to content

Calculadora Elementar


Recommended Posts

Posted

Olá pessoal...

Obrigado pela ajuda no desenvolvimento deste programinha (Calculadora... em dúvidas e ajudas)...

Aqui está ele.

/*Made by S@m0t on 10/12/06
  Calculadora Elementar    */

#include <stdio.h>

int main()
{
 float result; 
 char tipo,ans; 
 int i,quant=0;

 do {    
    while(quant==0)
   {
      printf("Quantos numeros quer operar?     ");
      scanf("%d",&quant);
    }

   float vector[quant];
    
   for(i=0;i<=quant-1;i++)
    {
      vector[i]=0;
    }
   printf("\nIntroduza um numero:  "); scanf("%f",&vector[0]);  

    for(i=1;i<=quant-1;i++)
    {
         printf("Introduza outro numero:  "); scanf("%f",&vector[i]);
    }         
    printf("\nQual destas quatro operacoes quer realizar?(*),(/),(+),(-)\n"); 
    scanf(" %c",&tipo);
    result=vector[0];
   switch(tipo)
   {
      case '+': for(i=1;i<=quant-1;i++)
                {
                  result+=vector[i];
                }
                printf("O resultado da soma e': %.2f\n\n",result); break;
      case '-': for(i=1;i<=quant-1;i++)
               {
                  result-=vector[i];
                }
                printf("O resultado da subtracao e':  %.2f\n\n",result); break;
      case '*': for(i=1;i<=quant-1;i++)
                {
                  result*=vector[i];
                }
                printf("O resultado da multiplicacao e':  %.2f\n\n",result); break;
      case '/': for(i=1;i<=quant-1;i++)
                {
                  if((result==0) || (vector[i]==0))
                  {
                   printf("Nao se pode dividir por zero!\n"); break;
                 }
                 result/=vector[i];
               }
               printf("O resultado da divisao e':  %.2f\n\n",result); break;
     default: printf("Caracter invalido.");
    }
   printf("Quer repetir('y' ou 'n')?\n"); scanf(" %c",&ans);

  } while (ans=='y' || ans=='Y');

 return 0;
}

EDIT: Thanz tofas... Isto já foi há muito tempo. Estava no príncipio dos príncipios quando fiz isto(sendo que agora estou no meio do príncipio)...C# Tem-me roubado todo o tempo...Mas... Ahhhhhhhh. Soube bem voltar ao C.

  • 1 month later...
Posted

boas,

Tens alguns erros, se eu digito que quero operar zero números, devia parar!! e não continuar considerando 1 digito...e depois dá para escolher a operação...bem analisa isso 😛

para repetir o que é que tenho que inserir?? tens que dizer ao utilizador, senão salta fora.... Tens que ver o caso que tens divisão por zero... Não se pode dividir um número por zero...

bom trabalho

tofas

  • 2 weeks later...
Posted

EDIT::: Alguns bugs corrigidos.

/*Made by S@m0t on 10/12/06
  Calculadora Elementar    */

#include <stdio.h>

void main()
{
float result; 
char tipo,ans; 
int i,quant=0;

do{

   while(quant==0)
   {
        printf("Quantos numeros quer operar?     ");
        scanf("%d",&quant);
   }

float vector[quant];
    
   for(i=0;i<=quant-1;i++)
   {
       vector[i]=0;
   }
   printf("\nIntroduza um numero:  "); scanf("%f",&vector[0]);  

    for(i=1;i<=quant-1;i++)
    {
         printf("Introduza outro numero:  ");scanf("%f",&vector[i]);
    }     	
    printf("\nQual destas quatro operacoes quer realizar?(*),(/),(+),(-)\n"); 
    scanf(" %c",&tipo);
    result=vector[0];
switch(tipo)
{
         case '+': for(i=1;i<=quant-1;i++)
                   {
                         result+=vector[i];
                   }
                   printf("O resultado da soma e': %.2f\n\n",result); break;
    
         case '-': for(i=1;i<=quant-1;i++)
                   {
                         result-=vector[i];
                   }
                   printf("O resultado da subtracao e':  %.2f\n\n",result); break;
         
         case '*': for(i=1;i<=quant-1;i++)
                   {
                         result*=vector[i];
                   }
                   printf("O resultado da multiplicacao e':  %.2f\n\n",result); break;
         
         case '/': for(i=1;i<=quant-1;i++)
                   {
                         if((result==0) || (vector[i]==0))
                         {
			             printf("Nao se pode dividir por zero!\n"); fflush(stdin); getchar(); return;
                         }

                         result/=vector[i];
                   }
                   printf("O resultado da divisao e':  %.2f\n\n",result); break;
         
         default: printf("Caracter invalido.");
    }
  printf("Quer repetir('y' ou 'n')?\n"); scanf(" %c",&ans);
  if(ans=='y' || ans=='Y')
      quant=0; 

    }while (ans=='y' || ans=='Y');
}   

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.