Prezados. Depois de apanhar e pesquisar um pouco, consegui chegar, neste codigo abaixo: -------------------------------------- #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h>
FILE *odiousFile; FILE *errorFile; FILE *inputFile; FILE *evilFile; char buffer[81] = "\x0"; int bytesWritten = 0; main() { int isOdious(int); int NumberOfOnes; int i; int rci = 26985; /*************************************/ /* Open file to write output */ /*************************************/ odiousFile = fopen("DD:ODIOUS", "w"); if (odiousFile == NULL) { printf("open error: %d/%s\n", errno, strerror(errno)); exit(99); } /*************************************/ /* Open file to write errors */ /*************************************/ errorFile = fopen("DD:ERRORS", "w"); if (errorFile == NULL) { printf("open error: %d/%s\n", errno, strerror(errno)); exit(99); } /*************************************/ /* Open file to read input */ /*************************************/ inputFile = fopen("DD:INPUT", "r"); if (inputFile == NULL) { printf("open error: %d/%s\n", errno, strerror(errno)); exit(98); } /*************************************/ /* Open file to write evil */ /*************************************/ evilFile = fopen("DD:OEVIL", "w"); if (evilFile == NULL) { printf("open error: %d/%s\n", errno, strerror(errno)); exit(99); } /*************************************/ /* Run program */ /*************************************/ while (fscanf(inputFile,"%d",&i) != EOF) { rci = isOdious(i); if (rci == 1) { bytesWritten = sprintf(buffer,"%d is odious \n",i); fwrite(buffer, 1, bytesWritten, odiousFile); } else if (rci ==0) { bytesWritten = sprintf(buffer,"%d is evil \n",i); fwrite(buffer, 1, bytesWritten, evilFile); } else { /* Nao fazer nada*/ } } /*************************************/ /* Close output files */ /*************************************/ fclose(odiousFile); fclose(errorFile); fclose(evilFile); /*************************************/ /* Close input file */ /*************************************/ fclose(inputFile); return 0; } int isOdious (int myInt) { int NumberOfOnes = 0; /*NumberOfOnes=0; */ if (myInt==0) { bytesWritten = sprintf(buffer,"0 not supported!\n"); fwrite(buffer, 1, bytesWritten, errorFile); return 100; } if (myInt>1024) { bytesWritten = sprintf(buffer,"%d too large!\n",myInt); fwrite(buffer, 1, bytesWritten, errorFile); return 101; } while (myInt>0) { if (myInt%2==1) { NumberOfOnes=NumberOfOnes+1; myInt=myInt-1; } myInt=myInt/2; } if (NumberOfOnes%2==1) return 1; else return 0; } -------------------------------------- Mas ainda esta faltando, eu incluir duas linhas no arquivo OEVIL, sera que voce poderia me ajudar. Celso. Em 12 de setembro de 2011 09:58, Jeferson Rodrigues <jefero...@gmail.com> escreveu: > Bom dia André, > > Uma simples divisão sucessiva por 2 e conta os uns que tu tens se o número >> tem paridade par ou paridade ímpar. >> > O programa faz isso na verdade. > > PS: você chegou a ver o meu e-mail anterior ajudando ele? Pergunto isso pois > eu mandei uma resposta com um "pequeno sermão" e dando uma forçinha pra ele, > e se você não viu desconfio que a lista tenha bloqueado. > > Abraços > > Em 12 de setembro de 2011 09:26, Andre Cavalcante < > andre.d.cavalca...@gmail.com> escreveu: > >> Em 10 de setembro de 2011 12:57, Celso Henrique >> <celsofigueir...@gmail.com>escreveu: >> >> > Prezados Ubundistas. >> > >> >> Olá >> >> >> > >> > Estou precisando resolver este programa em C, abaixo, mas não estou >> > conseguindo, sera que voce poderia me ajudar. >> > >> >> Olha só, na boa. Se eu tivesse entendido o que o cara tá pedindo eu até >> ajudava. Mas tá ruim demais entender o que ele pede. Na boa, paridade par e >> paridade ímpar é trivial em C. Uma simples divisão sucessiva por 2 e conta >> os uns que tu tens se o número tem paridade par ou paridade ímpar. >> >> Mas tem umas coisas de arquivo de erro que eu tô passado! Por que >> complicar? >> >> Abraços >> >> André Cavalcante >> Caparica, Portugal >> Ubuntu User number # 24370 >> Quer saber sobre Open Source Software? http://sobreoss.blogspot.com >> Quer saber mais sobre Espiritismo? http://sobreespiritismo.blogspot.com >> >> Atenção: Este e-mail pode conter anexos no formato ODF (Open Document >> Format)/ABNT (extensões odt, ods, odp, odb, odg). Antes de pedir os anexos >> em outro formato, você pode instalar gratuita e livremente o BrOffice ( >> http://www.broffice.org) ou o seguinte Plugin para Microsoft Office ( >> http://odf-converter.sourceforge.net/index.html< >> http://www.sun.com/software/star/odf_plugin/get.jsp> >> ). >> -- >> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece >> >> Lista de discussão Ubuntu Brasil >> Histórico, descadastramento e outras opções: >> https://lists.ubuntu.com/mailman/listinfo/ubuntu-br >> > -- > Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece > > Lista de discussão Ubuntu Brasil > Histórico, descadastramento e outras opções: > https://lists.ubuntu.com/mailman/listinfo/ubuntu-br > -- Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece Lista de discussão Ubuntu Brasil Histórico, descadastramento e outras opções: https://lists.ubuntu.com/mailman/listinfo/ubuntu-br