Guest tsenart Posted December 10, 2006 at 12:38 AM Report #69834 Posted December 10, 2006 at 12:38 AM 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"); }
Warrior Posted December 10, 2006 at 01:58 AM Report #69860 Posted December 10, 2006 at 01:58 AM 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.
Guest tsenart Posted December 10, 2006 at 02:52 PM Report #69937 Posted December 10, 2006 at 02:52 PM 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
Guest tsenart Posted December 10, 2006 at 03:40 PM Report #69947 Posted December 10, 2006 at 03:40 PM É 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"); }
Rui Carlos Posted December 10, 2006 at 04:21 PM Report #69950 Posted December 10, 2006 at 04:21 PM 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!?! Rui Carlos Gonçalves
Warrior Posted December 10, 2006 at 05:06 PM Report #69954 Posted December 10, 2006 at 05:06 PM 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.
cibersoft Posted December 10, 2006 at 05:54 PM Report #69958 Posted December 10, 2006 at 05:54 PM #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.
Guest tsenart Posted December 10, 2006 at 06:55 PM Report #69976 Posted December 10, 2006 at 06:55 PM 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!
Guest tsenart Posted December 10, 2006 at 06:57 PM Report #69978 Posted December 10, 2006 at 06:57 PM 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"); }
Warrior Posted December 10, 2006 at 06:59 PM Report #69979 Posted December 10, 2006 at 06:59 PM tu no getchar estás a ler um espaço. Le antes usando scanf("%c",&tipo)
Guest tsenart Posted December 10, 2006 at 07:22 PM Report #69986 Posted December 10, 2006 at 07:22 PM 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?
Warrior Posted December 10, 2006 at 07:26 PM Report #69987 Posted December 10, 2006 at 07:26 PM Estás sim a ler o enter. lê como eu te disse. scanf(" %c",&tipo); Com um espaço antes do %c
Guest tsenart Posted December 10, 2006 at 07:47 PM Report #69994 Posted December 10, 2006 at 07:47 PM 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now