Ir ao conteúdo

C PROGRAMA EM C - ler numero em extenso


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

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;
    }


 

Postado

@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]);

 

 

Postado

@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

Postado

@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;
}

 

Postado

@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

  • Solução
Postado

@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]);    
}

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!