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

2 Exercicios em C.


Ervilha

Pergunta

Tenho uma lista de 11 exercicios, já fiz 9 preciso de ajuda nesses aqui...

11) Construa um programa que receba um numero inteiro maior que 0 e menor que 1000 e seja capaz de exibir o número por extenso. Exemplo: Se for informado o número inteiro 879, o programa deve exibir: “Oitocentos e Setenta e Nove”.

Consegui fazer ele mostrar até 99 certo, mas depois travei...

#include<stdio.h>
#include<string.h>
#include<conio.h>

const char *tab1[] =
{
  "zero",
  "um",
  "dois",
  "tres",
  "quatro",
  "cinco",
  "seis",
  "sete",
  "oito",
  "nove",
  "dez",
  "onze",
  "doze",
  "treze",
  "quatorze",
  "quinze",
  "dezesseis",
  "dezesete",
  "dezoito",
  "dezenove",
};

const char *tab2[] =
{
  "vinte",
  "trinta",
  "quarenta",
  "cinquena",
  "sessenta",
  "setenta",
  "oitenta",
  "noventa",
};

const char *tab3[] =
{
  "cem",
  "duzentos",
  "trezentos",
  "quatrocentos",
  "quinhentos",
  "seicentos",
  "setesentos",
  "oitocentos",
  "novecentos",
};

void main()
{

int num;
char num_extenso[500];


for(num=0; num<500; num++)
{ num_extenso[num] = '';}

printf("Digite um numero: ");
scanf("%i", &num);

if(num <= 19)
{
  strcat(num_extenso, tab1[num]);
}
else if(num <= 99)
{
  strcat(num_extenso, tab2[(num/10) - 2]);

  if(num%10)
   {
    strcat(num_extenso, " e ");
    strcat(num_extenso, tab1[(num%10)]);
   }
}
else if(num <= 999)
{
  strcat(num_extenso, tab3[(num/100)]);

  if(num%10)
   {
    strcat(num_extenso, " e ");
    strcat(num_extenso, tab2[(num%10)]);
   }
}


printf("\n\t%s", num_extenso);
getch();

E falta esses dois que não consigo...

6) Elabore um programa que leia 10 nomes e ao final exiba os 10 nomes lidos ao contrário.

10) Escreva um programa que receba 3 strings, sendo que cada string é uma seqüência de notas musicais (C, D, E, F, A, B, C); que representa uma voz em uma melodia , o programa deve retornar se a melodia é um Cânone, ou não é uma Cânone.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
11) Construa um programa que receba um numero inteiro maior que 0 e menor que 1000 e seja capaz de exibir o número por extenso. Exemplo: Se for informado o número inteiro 879, o programa deve exibir: “Oitocentos e Setenta e Nove”.

o algoritmo ficou legal, mas vai dar trabalho pro 300. uma dica, porque você não isola os digitos antes de comecar??

exemplo:

printf("Digite um numero: ");
    scanf("%i", &num);

    int numx = num;

    int cen = numx / 100; //guarda a centena
    numx -= (cen * 100);
    int dec = numx / 10; //guarda a dezena
    numx -= (dec * 10);
    int und = numx; //guarda a unidade[/code]

assim você não tem mais q fazer nenhuma divisao nem nd, você já tem em cada variavel separada cada um dos digitos.

6) Elabore um programa que leia 10 nomes e ao final exiba os 10 nomes lidos ao contrário.

cada string é um array de char. então se você mostra na tela um caractere por vez a partir do ultimo indice ate o primero, fica invertido.

10) Escreva um programa que receba 3 strings, sendo que cada string é uma seqüência de notas musicais (C, D, E, F, A, B, C); que representa uma voz em uma melodia , o programa deve retornar se a melodia é um Cânone, ou não é uma Cânone.

o q é uma Cânone??

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...