Boa tarde Celso, Era exatamente isso mesmo que eu estava falando.
Mas ainda esta faltando, eu incluir duas linhas no arquivo OEVIL > Mas o que tá faltando exatamente? Abraços Em 12 de setembro de 2011 10:26, Celso Henrique <[email protected]>escreveu: > 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 > <[email protected]> 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 < > > [email protected]> escreveu: > > > >> Em 10 de setembro de 2011 12:57, Celso Henrique > >> <[email protected]>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 > -- 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

