• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Guest tsenart

Calculadora Elementar

6 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom trabalho! :)

Já agora, limpei o tópico... tinha 2 posts desnecessários.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :P

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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');
}   

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora