Ale Postado Abril 21, 2004 Denunciar Share Postado Abril 21, 2004 // 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 == Douplus == Postado Abril 21, 2004 Denunciar Share Postado Abril 21, 2004 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ale Postado Abril 21, 2004 Autor Denunciar Share Postado Abril 21, 2004 // tentei compilah e deu : return type of main is not int Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 == Douplus == Postado Abril 21, 2004 Denunciar Share Postado Abril 21, 2004 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ale Postado Abril 21, 2004 Autor Denunciar Share Postado Abril 21, 2004 // 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;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ale
// dae galera... tava tentando faze uma calc em C... mas...
// 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
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.