Jump to content

[C] Ajuda: Calculadora


Guest tsenart

Recommended Posts

Posted

Olá pessoal...

Alguém me quer ajudar neste código? Compilem e vejam o resultado... Não consigo descobrir o erro...

#include <stdio.h>

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

    printf("Quantos numeros quer operar?");
    scanf("%d",&quant);
    float vector[quant];
    printf("Introduza um numero:  ");
    scanf("%f",&vector[0]);
for(i=1;i<=quant-1;i++)
    {
         printf("Introduza outro numero:  ");scanf("%f",&vector[i]);
    }     	
    printf("Qual destas quatro operacoes quer realizar?\n(*),(/),(+),(-)\n\n"); 
    tipo=getchar();
    result=vector[0];
switch(tipo)
{
         case '+': for(i=1;vector[i]!='\0';i++)
                   {
                         result=result+vector[i]+vector[i+1];
                   }
                   printf("%f\n",result); break;
    
         case '-': for(i=1;vector[i]!='\0';i++)
                   {
                         result=result-vector[i]-vector[i+1];
                   }
                   printf("%f\n",result); break;
         
         case '*': for(i=1;vector[i]!='\0';i++)
                   {
                         result=result*vector[i]*vector[i+1];
                   }
                   printf("%f\n",result); break;
         
         case '/': for(i=1;vector[i]!='\0';i++)
                   {
                         result=result/vector[i]/vector[i+1];
                   }
                   printf("%f\n",result); break;
    }

system("pause");
}      
Posted

Em C não podes declarar variáveis depois de instruções. Aquela declaração do "vector" deve ser feita lá em cima, perto das outras variáveis.

Ah, não, não podes declarar o vector com o tamanho do "quant". Deves-lh atribuir um valor máximo, e declaras com esse valor.

Posted

AH... Eu tinha essa ideia só que pensava que era um pouco diferente... Pensava que não podia declarar vectores ou variaveis nou apontadores depois de serem usados...

Thankz

S@m0t

Posted

É pá... continuo mal. Não posso fazer um scanf para por um valor no vector?

Ajudem-me lá sff. Obrigado.

#include <stdio.h>

main()
{
float vector[50],result; char tipo; int i,quant;

for(i=0;i<=50;i++)
   {
       vector[i]=0;
   }

    printf("Quantos numeros quer operar(maximo 50)?");
    scanf("%d",&quant);
    printf("Introduza um numero:  ");
    scanf("%f",&vector[0]);
for(i=1;i<=quant-1;i++)
    {
         printf("Introduza outro numero:  ");scanf("%f",&vector[i]);
    }     	
    printf("Qual destas quatro operacoes quer realizar?\n(*),(/),(+),(-)\n\n"); 
    tipo=getchar();
    result=vector[0];
switch(tipo)
{
         case '+': for(i=1;vector[i]!='\0';i++)
                   {
                         result=result+vector[i]+vector[i+1];
                   }
                   printf("%f\n",result); break;
    
         case '-': for(i=1;vector[i]!='\0';i++)
                   {
                         result=result-vector[i]-vector[i+1];
                   }
                   printf("%f\n",result); break;
         
         case '*': for(i=1;vector[i]!='\0';i++)
                   {
                         result=result*vector[i]*vector[i+1];
                   }
                   printf("%f\n",result); break;
         
         case '/': for(i=1;vector[i]!='\0';i++)
                   {
                         result=result/vector[i]/vector[i+1];
                   }
                   printf("%f\n",result); break;
    }

system("pause");
}      
Posted

Em C não podes declarar variáveis depois de instruções. Aquela declaração do "vector" deve ser feita lá em cima, perto das outras variáveis.

Ah, não, não podes declarar o vector com o tamanho do "quant". Deves-lh atribuir um valor máximo, e declaras com esse valor.

no c99, as variáveis já podem ser declaradas em qualquer lado.

quanto ao vector com tamanho 'quant' nunca usei isso, mas penso que o gcc também já o permite...


vector[ i ]!='\0'  ????

para que é isto!?!

Posted

Em C ANSI não é permitido.

Não podes fazer o for enquanto vector[ i ] != '\0', porque não estás a trabalhar com strings. Faz antes i<quant.

Posted
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    float nume=0,numero=0,result=0;
    char opcao=0;
    
    printf("\n\t\t\tBem vindo ao programa claculadora");
    printf("\n\n\n\n");
    printf("\tIntroduza o Primeiro numero a calcular: ");
    scanf("%f",&nume);
    printf("\n\n\tIntroduza o segundo Numero a calcular: ");
    scanf("%f",&numero);
    printf("\n\nEscolha uma das opcoes de calculo: ");
    scanf("%c",&opcao);
    opcao=getchar();                   
    printf("\n\n\t\tA opcao escolida foi:  %c\n\n",opcao);

                       switch(opcao)
                       {
                                    case '+':
                                         result= nume + numero;
                                         printf("\n\nO Resultado da operacao escolhide e = %0.0f\n",result);
                                         printf("\n\n");
                                         break;
                                    case '*':
                                         result= nume * numero;
                                         printf("\nO Resultado da operacao escolhide e = %0.0f\n",result);
                                         break;
                                    case '/':
                                         result= nume / numero;
                                         printf("\nO Resultado da operacao escolhide e = %0.0f\n",result);
                                         break;
                                         case '-':
                                              result= nume - numero;
                                         printf("\nO Resultado da operacao escolhide e = %0.0f\n",result);
                                         break;
                                         } 
                                         getch();
  system("PAUSE");	
  return 0;
}

Eu não sei para e que declaraste vectores na calculadora!!!

Vê este código que fiz e diz se te ajuda ou não.

Posted

Obrigado... Mas assim também eu sabia fazer. É que eu não quero limitar a calculadora a operar com dois números. Percebeste agora?

Vejam lá nesta versão.. É que a execução do programa passa o getchar()! Vai logo para o fim a seguir a recebr os dados... Help!

Posted

Ups.. Esqueci-me do código.

#include <stdio.h>

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

    printf("Quantos numeros quer operar?");
    scanf("%d",&quant); float vector[quant];
    for(i=0;i<=quant;i++)
   {
       vector[i]=0;
   }
    printf("Introduza um numero:  ");
    scanf("%f",&vector[0]);
for(i=1;i<=quant-1;i++)
    {
         printf("Introduza outro numero:  ");scanf("%f",&vector[i]);
    }     	
    printf("Qual destas quatro operacoes quer realizar?\n(*),(/),(+),(-)\n\n"); 
    tipo=getchar();
    result=vector[0];
switch(tipo)
{
         case '+': for(i=1;vector[i]<=quant;i++)
                   {
                         result=result+vector[i]+vector[i+1];
                   }
                   printf("%f\n",result); break;
    
         case '-': for(i=1;vector[i]<=quant;i++)
                   {
                         result=result-vector[i]-vector[i+1];
                   }
                   printf("%f\n",result); break;
         
         case '*': for(i=1;vector[i]<=quant;i++)
                   {
                         result=result*vector[i]*vector[i+1];
                   }
                   printf("%f\n",result); break;
         
         case '/': for(i=1;vector[i]<=quant;i++)
                   {
                         result=result/vector[i]/vector[i+1];
                   }
                   printf("%f\n",result); break;
    }

system("pause");
}      
Posted

tu no getchar estás a ler um espaço.

Le antes usando scanf("%c",&tipo)

Não não estou a ler um espaço... Estou a associar a resposta dada à variavel tipo.... tipo=getchar(); Sim eu já tinha experimentado o scanf("%c",&tipo)... Não altera nada.

Obrigado por tentares.Peace

Any help?

Posted

Ah.. Pois é. tens razão. O enter entra como o valor a por na variavel pois fica no buffer. Já me tinha esquecido disso. Thankz

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.