Ir para conteúdo
Fórum Script Brasil
  • 0

Erro - Calc C


Ale

Pergunta

// dae galera... tava tentando faze uma calc em C... mas...

#import <stdio.h>
#import <sys.h>

float soma(float a, float b, float x)
{
	printf("vA: ");
	scanf("%d", &a);
	getchar();

	printf("vB: ");
	scanf("%d", &b);
	getchar();

	x = a +b;

	printf("RESUL: %d", x);
	return 0;
}

float sub(float a, float b, float x)
{
	printf("vA: ");
	scanf("%d", &a);
	getchar();

	printf("vB: ");
	scanf("%d", &b);
	getchar();

	x = a - b;

	printf("RESUL: %d", x);
	return 0;
}

float muti(float a, float b, float x)
{
	printf("vA: ");
	scanf("%d", &a);
	getchar();

	printf("vB: ");
	scanf("%d", &b);
	getchar();

	x = a * b;

	printf("RESUL: %d", x);
	return 0;
}

float div(float a, float b, float x)
{
	printf("vA: ");
	scanf("%d", &a);
	getchar();

	printf("vB: ");
	scanf("%d", &b);
	getchar();

	x = a / b;

	printf("RESUL: %d", x);
	return 0;
}

int menu(char m, int a)
{
	printf("Opcoes: (1) +\n (2) -\n (3) *\n (4) div (5) sair: ");
	scanf("%d", &m);
	getchar();

	switch (m)
	{
  case '1':
  	soma(a, b, x);
  case '2':
  	sub(a, b, x);
  case '3':
  	mult(a, b, x);
  case '4':
  	div(a, b, x);
  case '5':
  	a = 1;
	}

	return 0;
}

void main(void)
{
	do{a = 2; menu();}while(a!=1);
}

// no bloco switch - case'1' da erro, diz

// q a, b e x não foram declaradas...

// qualquer devo fzr ?? vlw ae e flwz...

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Mudei algumas "coisas" nesse programa:

#include <stdio.h>

float soma()
{
float a, b, x;
printf("\nvA: ");
scanf("%f", &a);
getchar();

printf("\nvB: ");
scanf("%f", &b);
getchar();

x = a + b;

printf("\nRESUL: %f", x);
}

float sub()
{
float a, b, x;
printf("\nvA: ");
scanf("%f", &a);
getchar();

printf("\nvB: ");
scanf("%f", &b);
getchar();

x = a - b;

printf("\nRESUL: %f", x);
}

float muti()
{
float a, b, x;
printf("\nvA: ");
scanf("%f", &a);
getchar();

printf("\nvB: ");
scanf("%f", &b);
getchar();

x = a * b;

printf("\nRESUL: %f", x);
}

float div()
{
float a, b, x;
printf("\nvA: ");
scanf("%f", &a);
getchar();

printf("\nvB: ");
scanf("%f", &b);
getchar();

x = a / b;

printf("\nRESUL: %f", x);
}

int menu()
{
int a;
int m;
printf("\nOpcoes: (1) +\n (2) -\n (3) *\n (4) div \n(5) sair: ");
scanf("%d", &m);
getchar();

switch (m)
{
 case 1:
  soma();
  break; /*Obs.: o comando break fas com que saia da execução do laço*/
 case 2:
  sub();
  break;
 case 3:
  muti();
  break;
 case 4:
  div();
  break;
 case 5:
  break;
}

return m; /*Retorna o valor de m*/
}

void main(void)
{
char a;
do {
a = menu();
}
while (a != 5); /*Chama a função menu() enquanto a != 5*/
}

Você não tinha declarado algumas variáveis, portanto o compilador não conseguia trabalhar com elas. Tirei os parâmetros das funções pois não eram necessários e declarei variáveis dentro do escopo delas. Acrescentei comandos "break" para terminar a execução do laço switch, se não o programa executaria todas as funções um após a outra. Por favor me corrijam se eu estiver errado.

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe, entendi o erro, agora deva estar crto:

#include <stdio.h>

float soma()
{
float a, b, x;
printf("\nvA: ");
scanf("%f", &a);
getchar();

printf("\nvB: ");
scanf("%f", &b);
getchar();

x = a + b;

printf("\nRESUL: %f", x);
}

float sub()
{
float a, b, x;
printf("\nvA: ");
scanf("%f", &a);
getchar();

printf("\nvB: ");
scanf("%f", &b);
getchar();

x = a - b;

printf("\nRESUL: %f", x);
}

float muti()
{
float a, b, x;
printf("\nvA: ");
scanf("%f", &a);
getchar();

printf("\nvB: ");
scanf("%f", &b);
getchar();

x = a * b;

printf("\nRESUL: %f", x);
}

float div()
{
float a, b, x;
printf("\nvA: ");
scanf("%f", &a);
getchar();

printf("\nvB: ");
scanf("%f", &b);
getchar();

x = a / b;

printf("\nRESUL: %f", x);
}

int menu()
{
int a;
int m;
printf("\nOpcoes: (1) +\n (2) -\n (3) *\n (4) div \n(5) sair: ");
scanf("%d", &m);
getchar();

switch (m)
{
 case 1:
  soma();
  break; /*Obs.: o comando break fas com que saia da execução do laço*/
 case 2:
  sub();
  break;
 case 3:
  muti();
  break;
 case 4:
  div();
  break;
 case 5:
  break;
}

return m; /*Retorna o valor de m*/
}

void main(void)
{
int a;
do {
a = menu();
}
while (a != 5); /*Chama a função menu() enquanto a != 5*/
}

Eu tinha declarado a variavel a de main() como char.

Link para o comentário
Compartilhar em outros sites

  • 0

// Deu o mesmo erro, mas eu arrumei, no main tem q

// retornar algma coisa... veja(main)

...
int main()
{
int a;
do {
a = menu();
}
while (a != 5); /*Chama a função menu() enquanto a != 5*/
return 0;}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...