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

Responder a