blue_ice Posted November 7, 2009 at 03:15 PM Report Share #295039 Posted November 7, 2009 at 03:15 PM 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? Link to comment Share on other sites More sharing options...
TheDark Posted November 7, 2009 at 03:47 PM Report Share #295041 Posted November 7, 2009 at 03:47 PM 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. Desaparecido. Link to comment Share on other sites More sharing options...
blue_ice Posted November 7, 2009 at 04:05 PM Author Report Share #295042 Posted November 7, 2009 at 04:05 PM boas não posso ler o número digito a digito. nem usar strings Link to comment Share on other sites More sharing options...
blue_ice Posted November 7, 2009 at 04:18 PM Author Report Share #295046 Posted November 7, 2009 at 04:18 PM #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? Link to comment Share on other sites More sharing options...
Quadrado Posted November 7, 2009 at 04:46 PM Report Share #295049 Posted November 7, 2009 at 04:46 PM talvez se introduzires uma condição de que o prog só aceite variáveis do tipo numérico. 😛 Será? Porquê? O quê? - Estudar Sempre - Link to comment Share on other sites More sharing options...
blue_ice Posted November 7, 2009 at 05:06 PM Author Report Share #295050 Posted November 7, 2009 at 05:06 PM boas se não for pedir muito podes exemplificar como e que se faz? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now