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

aellogic

Ajuda Calculadora em C

8 mensagens neste tópico

pessoal eu fiz uma calculadora mas tem uns 16 erros alguém me pode ajudar?

#include<stdio.h>

int operacao(cont)
{
int resp;
int x;
int num;

printf ("------------Menu----------\n");
printf ("----- a-Soma -------------\n");
printf ("----- b-Subtraccao -------\n");
printf ("----- c-Multiplicacao ----\n");
printf ("----- d-Divisao ----------\n");
printf ("----- e-Resto ------------\n");
printf ("--------------------------\n");
printf("MENU:");
scanf("%d",&x);

switch (x)
{
	case "1": for(x=1,x=cont,x++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp+num;
			  };break;
	case "2": for(x=1,x=cont,x++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp-num;
			  };break;
	case "3": for(x=1,x=cont,x++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp*num;
			  };break;
	case "4": for(x=1,x=cont,x++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp/num;
			  };break;
	case "5": for(x=1,x=cont,x++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp%num;
			  };break;
	default: printf("Caracter nao valido!!!\n");
}

return resp;
}

escrever(resp)
{
char x;
printf("quer saber o resultado?(s/n)");
scanf(" %c",&x);
if(x=='s')
{
	printf("o resultado e:%d",resp);
}
}

main()
{
int cont;
int resp;

printf("calculadora versao 1.3\n");
printf("quantos numeros quer inserir?");
scanf("%d",&cont);
resp=operacao(cont);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usa o geshi. Esse código está um pesadelo... Porque é que declaras x como int e depois no case usas strings e ainda por cima strings que nada têm a ver com o menu que apresentaste... Devias fazer case 'a': , case 'b' etc. e declarar x como char.

O for tem ponto e vírgula entre os argumentos. Tens que inicializar a variável resp antes de começares a fazer as contas.

Acho que faz mais sentido perguntar qual é a operação e depois quantos números quer inserir. Que sentido faz inserir três números numa divisão? É dividir o primeiro pelo segundo e o resultado pelo terceiro? Não se percebe.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado pela ajuda...

agr em vez de ter 16 erros so tenho um warning que diz

"d:\documents and settings\rui peres\os meus documentos\visual studio 2008\project3.c\project3.c\projecto.c(25) : warning C4700: uninitialized local variable 'resp' used"...

alguem me pode ajudar???

novo codigo:

#include<stdio.h>

int operacao(cont)
{
int resp;
char x;
int num;

printf ("------------Menu----------\n");
printf ("----- a-Soma -------------\n");
printf ("----- b-Subtraccao -------\n");
printf ("----- c-Multiplicacao ----\n");
printf ("----- d-Divisao ----------\n");
printf ("----- e-Resto ------------\n");
printf ("--------------------------\n");
printf("MENU:");
scanf(" %c",&x);

switch (x)
{
	case 'a': for(x=1;x=cont;x++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp+num;
			  };break;
	case 'b': for(x=1;x=cont;x++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp-num;
			  };break;
	case 'c': for(x=1;x=cont;x++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp*num;
			  };break;
	case 'd': for(x=1;x=cont;x++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp/num;
			  };break;
	case 'e': for(x=1;x=cont;x++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp%num;
			  };break;
	default: printf("Caracter nao valido!!!\n");
}

return resp;
}

escrever(resp)
{
char x;

printf("quer saber o resultado?(s/n)");
scanf(" %c",&x);
if(x=='s')
{
	printf("o resultado e:%d",resp);
}
}

main()
{
int cont;
int resp;

printf("calculadora versao 1.3\n");
printf("quantos numeros quer inserir?");
scanf("%d",&cont);
resp=operacao(cont);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens que inicializar a variável resp antes de começares a fazer as contas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

um pequeno ajuste e...

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

int operacao(int cont)
{
int resp,resp2[80];
char x;
int num,i,d;
d=cont;

printf ("------------Menu----------\n");
printf ("----- a-Soma -------------\n");
printf ("----- b-Subtraccao -------\n");
printf ("----- c-Multiplicacao ----\n");
printf ("----- d-Divisao ----------\n");
printf ("----- e-Resto ------------\n");
printf ("--------------------------\n");
printf("MENU:");
scanf(" %c",&x);
resp=0;
switch (x)
{
	case 'a': for(i=1;i<=d;i++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp+num;
			  }printf("%d",resp);break;
	case 'b': for(i=1;i<=d;i++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp=resp-num;
			  }printf("%d",resp);break;
	case 'c': for(i=1;i<=d;i++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp2[i]=num;
			  }
                  for(i=1;i<=d;i++)
			  {
				  if(i==1){
                      resp=resp2[1];
                      }else{
                            resp=resp*resp2[i];}
			  }
                  printf("%d",resp);break;
	case 'd': for(i=1;i<=d;i++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp2[i]=num;
			  }
                  for(i=1;i<=d;i++)
			  {
				  if(i==1){
                      resp=resp2[1];
                      }else{
                            resp=resp/resp2[i];}
			  }
                  printf("%d",resp);break;
	case 'e': for(i=1;i<=d;i++)
			  {
				  printf("introduzir numero:");
				  scanf("%d",&num);
				  resp2[i]=num;
			  }
                  for(i=1;i<=d;i++)
			  {
				  if(i==1){
                      resp=resp2[1];
                      }else{
                            resp=resp%resp2[i];}
			  }printf("%d",resp);break;
	default: printf("Caracter nao valido!!!\n");
}

return resp;
}


main()
{
int cont;
int resp;

printf("calculadora versao 1.3\n");
printf("quantos numeros quer inserir?");
scanf("%d",&cont);
resp=operacao(cont);
getch();
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

falta ai uma pausazinha que eu não consigo ver o resultado sai logo... :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda bem que conseguiste fazer :(

Embora eu ache que a calculadora devia ter um while infinito até tu dizeres que querias sair. Geralmente as calculadoras não se desligam quando tu fazes uma conta...

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