Ir ao conteúdo
  • Cadastre-se

C PROGRAMA EM C - ler numero em extenso


Loris_mini
Ir à solução Resolvido por Midori,

Posts recomendados

Preciso de ajuda nesse código:

 

Escreva um procedimento que receba um número inteiro e o imprima na forma extensa.
Por exemplo, para 1 a saída desejada é “Um”. A função deve ser capaz de gerar o extenso dos números de 0 até 10, inclusive. Caso um número não compatível seja
recebido o procedimento deve mostrar uma mensagem de erro. Crie também um algoritmo que leia um valor inteiro e chame o procedimento criado acima para a/impressão do número extenso.

 

# include <stdio.h>
# include <math.h>


int numero_extenso (int n);

int main ()

{
    int n,extenso,i=0;
    n[11]= ("um","dois","tres","quatro","cinco","seis","sete","oito","nove","dez");
    
    if (x<0) & (x>10)
    {
        printf ("Erro! Numero inválido!");
    
    else
    
    printf(" %d",n);
    
    }
    
    int numero_extenso (int n)
    
    {
        return n;
    }


 

Link para o comentário
Compartilhar em outros sites

@Laryssa Silva  Nesta parte você tentou criar um vetor,

 

n[11]= ("um","dois","tres","quatro","cinco","seis","sete","oito","nove","dez");

 

Para armazenar strings você pode usar uma matriz de char onde informará a quantidade de linhas e caracteres por linha, p.ex

 

char numero[11][10] = {
    "zero","um","dois","tres","quatro",
    "cinco","seis","sete","oito","nove","dez"
};

 

Assim a matriz pode ser vista como 11 linhas de 10 caracteres cada (se fosse só char numero[11] seria um vetor de 11 caracteres). Para exibir o extenso é só passar o valor do número (ou índice), p.ex,

 

printf("%s\n", numero[7]);

 

 

Link para o comentário
Compartilhar em outros sites

@Midori

Ficaria assim?

 

int numero_extenso (int n);

int main ()

{
    int x,n,extenso,i=0;
    char numero[11][10] = ("zero","um","dois","tres","quatro", "cinco","seis","sete","oito","nove","dez");
    
    printf("%s\n", numero[7]);
    
    if (x<0) & (x>10)
    {
        printf ("Erro! Numero inválido!");
    
    else
    
    printf(" %d",n);
    
    }
    
    int numero_extenso (int n)
    
    {
        return n;
    }

 Eu tentei compilar mais deu alguns erros:

image.png.2be077022696415001282673dea25bdb.png

Link para o comentário
Compartilhar em outros sites

@Laryssa Silva  A sintaxe para matriz/vetor é com chaves e não parênteses, veja no exemplo que postei usei chaves. No seu if se quiser comparar com o operador AND deve ser com && (& duplo). E você não está abrindo/fechando os bloco dos comando corretamente, veja a sintaxe if p.ex,

 

if(teste){

}else{

}

 

Um exemplo para testar os números,

 

#include <stdio.h>

int main(){
    char numero[11][10] = {
        "zero","um","dois","tres","quatro",
        "cinco","seis","sete","oito","nove","dez"};
    
    printf("%s\n", numero[7]);
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

@Midori

 

O codigo ficou assim:

 

# include <stdio.h>
# include <math.h>

//Escreva um procedimento que receba um número inteiro e o imprima na forma extensa.
//Por exemplo, para 1 a saída desejada é “Um”. A função deve ser capaz de gerar o
//extenso dos números de 0 até 10, inclusive. Caso um número não compatível seja
//recebido o procedimento deve mostrar uma mensagem de erro. Crie também um
//algoritmo que leia um valor inteiro e chame o procedimento criado acima para a
//impressão do número extenso.


int numero_extenso (int n);

int main ()

{
    int x,n,extenso,i=0;
    char numero[11][10] = {"zero","um","dois","tres","quatro", "cinco","seis","sete","oito","nove","dez"};
    
    printf("%s\n", numero[7]);
    
    if (x<0 && x>10) {
        printf ("Erro! Numero inválido!"); 
    }
    
    else{
    
    printf(" %d",n);
    
    }
    
    int numero_extenso (int n)
    
    
        return n;
}

Com esses erros:

 

image.png.f4bb5d565cad2e0dc174abeaee4d8c29.png

Link para o comentário
Compartilhar em outros sites

  • Solução

@Laryssa Silva  Seu programa está testando o valor de x, mas você não atribui nenhum valor a essa variável.

 

Uma parte da função numero_extenso está incompleta e incorretamente dentro do bloco main, e o protótipo dela está com retorno int quando devia ser void (para imprimir o valor na própria função) ou ponteiro char (para retornar a string). Seu programa poderia ser assim.

 

#include <stdio.h>

void numero_extenso(int n);

int main (){
    int x;
    
    printf("Numero: ");
    scanf("%d",&x);

    if(x < 0 || x > 10){
        printf ("Erro! Numero inválido!"); 
    }else{
        numero_extenso(x);
    }
    return 0;
}

void numero_extenso(int n){
    char numero[11][10] = {
        "zero","um","dois","tres","quatro",
        "cinco","seis","sete","oito","nove","dez"
    };
    printf("%s\n",numero[n]);    
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...