Jump to content
Gabriela Volp

Duvida em programa em C

Recommended Posts

Gabriela Volp

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

Share this post


Link to post
Share on other sites
HappyHippyHippo

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 by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Gabriela Volp

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 by thoga31
Tags code + GeSHi

Share this post


Link to post
Share on other sites
HappyHippyHippo

ok, agora que tens o primeiro ponto feito, podes começar a fazer o segundo


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Gabriela Volp

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 by thoga31
Tags code + GeSHi

Share this post


Link to post
Share on other sites
Gabriela Volp

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 by thoga31
Tags code + GeSHi

Share this post


Link to post
Share on other sites
HappyHippyHippo

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 by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
11001

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 by 11001

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.