Ir ao conteúdo

Posts recomendados

Postado

Tenho que fazer em C um programa que recebe uma sequencia de numeros como entrada e devolve eles em ordem decrescente. Tipo

Entrada:

253

Saida

532

Como eu faço pra obter essa entrada se eu não sei quantos números o usuario vai digitar?

eu pensei em pedir antes pro usuario digitar quantos numeros ele quer, e dai fazer um ciclo for..mas dai a entrada ficaria:

Entrada:

qnts numeros quer digitar?

3

quais sao?

253

Saidaa:

532

 

Não tem como a entrada ser só os numeros que ele quer digitar?

Postado

Você pode facilmente contar quantos dígitos o número tem, basta dividi-lo por 10 várias vezes (ou seja, ciclicamente), até que o número se torne igual a 0 e ir contando quantas vezes foi necessário dividir por 10.

Postado

Nao..não é um numero só...é que eu escrevi junto mas 253 é 2   5   3

O usuario vai digitar varios numeros , nesse caso foi 3 numeros...

Como eu faço agora?

Postado

você que o reverso?

Se for pode usar esse programa

#include <stdio.h>int reverso (int x){    int a,b,c=0;    a = x;    while (a > 0) {        b = a % 10;        c = 10*c + b;        a = a/10;}    return c ;}main(){    int x,inv;    printf("Informe um Numero: \n");    scanf("%d",&x);    inv = reverso(x);    printf("%d - %d \n", x, inv);}
Postado

Nesse caso você tem que criar uma condição de saída do loop de entrada de dados...

 

Por exemplo, se você está recebendo estes dígitos como tipo int, uma condição de parada poderia ser a pessoa digitar um número negativo, ou um número com mais de 1 dígito (ou seja, maior que 9).

 

Se está lendo como tipo char, você pode usar um caractere que indica o fim da entrada de dígitos, como o caractere ponto final (.), por exemplo. Ou então verificar que o caractere é um dos 10 dígitos possíveis, e parar se a pessoa digitar qualquer caractere que não seja um número.

Postado

Hmm..é que se a gente tiver que digitiar um numero negativo pra entrada terminar, o numero negativo ainda assim vai aparecer na tela preta de execução né, ele ainda vai ser uma entrada inevitavelmente ne...nao tem mesmo como deixar na entrada apenas os numeros que você quer do usuario pra usar no programa ne?

Postado

Tem sim, só aumenta a complexidade um pouco:

#include <stdio.h>#include <stdlib.h>int main(){    int num;    char string[20], c;    do {        fscanf(stdin, "%s", string); /*poe na string o proximo conjunto de numeros até encontrar um espaco*/        num = atoi(string);  /*converte o numero da string pra inteiro*/        printf("%d ", num);         c = getchar(); /*pega o proximo caractere digitado*/        ungetc(c, stdin); /*devolve o caracter obtido pra a entrada padrao (standard input = stdin)*/    } while (c != '\n'); /*verifica se o caractere não é um caractere nova linha (= Enter), ou                           seja, se não acabaram os números digitados na linha, e para o ciclo se sim*/    return 0;}
Visitante
Este tópico está impedido de receber novas respostas.

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!