Gabriela Volp Posted October 14, 2013 at 01:12 PM Report #528893 Posted October 14, 2013 at 01:12 PM Olaaa galera, estou começando a programar e quando vi esse programa a ser feito nao sei por onde começar.. ALguem me da uma ajuda? Todo valor inteiro representando uma quantia em centavos pode ser expresso como valores inteiros equivalentes em reais e centavos. Por exemplo, 123 centavos pode ser expresso como 1 real e 23 centavos; e 8.634 centavos pode ser expresso como 86 reais e 34 centavos. Descrição Escreva um programa para ler um número inteiro do teclado representando um valor em centavos e imprimir os valores equivalentes em reais e centavos, no formato abaixo: xxx reais e yyy centavos onde xxx é a quantia de reais e yyy a quantia de centavos. Após imprimir a expressão acima seu programa deve imprimir a mensagem "fim de programa" e parar. Assunções e restrições (1) Seu programa deve imprimir a mensagem "Digite a quantidade de centavos: " antes da leitura do valor em centavos. (2) Se o valor lido for negativo apenas a mensagem "fim de programa" deve ser impressa. (3) As palavras "reais" e "centavos" devem ser impressas no singular se a quantidade a que se referem for igual a 1. (4) Se a quantidade de reais for zero, nem esta quantidade nem a palavra "reais" devem ser impressas. (5) Se a quantidade de centavos for zero, nem esta quantidade nem a palavra "centavos" 1 / 3 Reais e centavos devem ser impressas. (6) O conectivo "e" só deve ser impresso se as duas quantidades (reais e centavos) forem impressas. (7) A expressão contendo os valores de reais e centavos deve ser impressa em uma única linha, contendo apenas um espaço entre os seus termos. (8) A mensagem "fim de programa" deve ser impressa na linha seguinte à linha onde os valores de reais e centavos foram impressos (ou, caso não tenha havido a impressão de valores, na linha seguinte ao número digitado). Exemplo A) Considere que o inteiro 423 tenha sido digitado. Então, a saída do programa deve ser: Digite a quantidade de centavos: 423 4 reais e 23 centavos fim de programa Exemplo B) Considere que o inteiro -67 tenha sido digitado. Então, a saída do programa deve ser: Digite a quantidade de centavos: -67 fim de programa Exemplo C) Considere que o inteiro 100 tenha sido digitado. Então, a saída do programa deve ser: Digite a quantidade de centavos: 100 1 real fim de programa 2 / 3 Reais e centavos Informações adicionais Cód: CB004. 3
HappyHippyHippo Posted October 14, 2013 at 01:58 PM Report #528899 Posted October 14, 2013 at 01:58 PM (edited) o que já fizeste ? é que não vais encontrar ninguém que te resolva os problemas aqui ... ps : se o problema é por onde começar, o melhor é mesmo pelo primeiro ponto Edited October 14, 2013 at 01:59 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Gabriela Volp Posted October 15, 2013 at 07:52 PM Author Report #529091 Posted October 15, 2013 at 07:52 PM (edited) Bem oq eu fiz foi #include <stdio.h> int main() { int centavos; int reais; printf("Digite a quantidade de centavos: "); scanf("i%", centavos); return 0; } a minha duvida é como eu uso os termos de condições e tudo... Edited October 15, 2013 at 09:28 PM by thoga31 Tags code + GeSHi
HappyHippyHippo Posted October 15, 2013 at 08:28 PM Report #529093 Posted October 15, 2013 at 08:28 PM ok, agora que tens o primeiro ponto feito, podes começar a fazer o segundo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Gabriela Volp Posted October 15, 2013 at 08:44 PM Author Report #529098 Posted October 15, 2013 at 08:44 PM (edited) Bem olha oq eu pensei, não sei se está certo.. tipo ele pediu um numero inteiro mas se eu colocar int ele vaia acabar desconsiderando a parte fracionária quando o número for muito grande então coloquei com o float... #include <stdio.h> int main() { float centavos; float reais; float valorcent; printf("Digite a quantidade de centavos: "); scanf("f%,",centavos); reais= centavos / 100; valorcent= (centavos - reais ) *100; printf ("%f", reais) ; printf ("%f", valorcent); return 0; } O programa até rodou maaas com umas coisas absurdas, nao saiu nada que eu queria Edited October 15, 2013 at 09:29 PM by thoga31 Tags code + GeSHi
pwseo Posted October 15, 2013 at 09:00 PM Report #529101 Posted October 15, 2013 at 09:00 PM Seria boa ideia colocares o código entre tags .
Gabriela Volp Posted October 15, 2013 at 09:12 PM Author Report #529102 Posted October 15, 2013 at 09:12 PM (edited) tem como vcs checarem pra ver se tem algum erro? eu nao vi nenhum, o programa rodou mas nao executa o quero.. #include <stdio.h> int main() { int qtd_centavos, reais, centavos; printf("Digite a quantidade de centavos: "); scanf("%d", qtd_centavos); if (qtd_centavos > 0) { centavos = qtd_centavos % 100; reais = qtd_centavos / 100; if (reais > 0) { printf("%d %s", reais, (reais > 1) ? " reais" : " real"); if (centavos > 0) printf(" e "); } if (centavos > 0) printf("%d %s", centavos, (centavos > 1) ? " centavos" : " centavo"); } printf("\nfim de programa\n"); return 0; } Edited October 15, 2013 at 09:29 PM by thoga31 Tags code + GeSHi
HappyHippyHippo Posted October 15, 2013 at 09:13 PM Report #529104 Posted October 15, 2013 at 09:13 PM (edited) esquece os floats e os doubles por agora. faz com inteiros tem como vcs checarem pra ver se tem algum erro? eu nao vi nenhum, o programa rodou mas nao executa o quero.. duas maneiras : - quando o programa é pequeno, basta ler o código - quando o programa é grande, existem programas chamados de debuggers que ajudam a ver o que se passa quando executas o código compilado agora, que dados experimentaste e qual foi o resultado que obtiveste ? Edited October 15, 2013 at 09:18 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pwseo Posted October 15, 2013 at 09:14 PM Report #529105 Posted October 15, 2013 at 09:14 PM Gabriela Volp, https://www.portugal-a-programar.pt/help/#code
11001 Posted October 16, 2013 at 12:07 AM Report #529118 Posted October 16, 2013 at 12:07 AM (edited) tem como vcs checarem pra ver se tem algum erro? eu nao vi nenhum, o programa rodou mas nao executa o quero.. #include <stdio.h> int main() { int qtd_centavos, reais, centavos; printf("Digite a quantidade de centavos: "); scanf("%d", qtd_centavos); } tipo logo no scanf falta-te o & , tens que mandar o endereço da variável e não o valor desta , devido ao facto de os argumentos do scanf serem int scanf(const char *format) Edited October 16, 2013 at 12:08 AM by 11001
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