• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

blue_ice

Ajuda em programa em C

6 mensagens neste tópico

Boa tarde,

Sou novo aquino forum, quero colocar uma quetão para um programa em c que estou a fazer para a faculdade, estou a iniciar-me em c.

o programa para  qual precisso de ajuda é: o programa deve de ler um numero inteiro positivo e escrever no ecrã a soma dos produtos dos seus digitos pelas respectiva posições qu ocupão. as posições são enumeradas da esquerda para a direita e deve começar no 1. o programa deve certificar-se que  numero lido e valido e que todas as condições de erro são tratadas de forma adequada. o programa deve de possuir um ciclo de leirura  e ser capaz de processar mais de um numero de cada vez. valores como 215as22 devem de ser considerados invalidos.

so posso usar esta materia para fazer este programa: dados simples, apontadores, estruturas de controlo.

o meu probelema é por o programa a dizer que este nº 255as5 não e valido.

como e que eu faço este tipo de validação?

 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes ler uma string em cada iteração do ciclo, e processar caracter a caracter, realizando logo a multiplicação, e verificando se o caracter é numérico. Não vejo maneira mais simples de o fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas

não posso ler o número digito a digito.

nem usar strings

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#include <stdlib.h>
#include <stdio.h>

int main()
{
    unsigned int num ;
    char c;

    system ("chcp 1252");
   /*while(1)*/
    {
        printf("Introduza um numero: " );
              if (scanf(" %d%c",&num,&c) != 2)
               printf("erro na leitura\n");
               num=0;
    if (c != 10)
        printf("O número que inseriu não e valido\n");
    }
}

este codigo faz a validação o problema é quando meto o while a funcionar, basta introduzir uma letra em primerio lugar que ele fica logo em lop. como e que consigo resolver este problema?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

talvez se introduzires uma condição de que o prog só aceite variáveis do tipo numérico. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas

se não for pedir muito podes exemplificar como e que se faz?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora