não dava pra transformar o numero binario em array, somar cada item do array
e se der par é par e assim segue??
--

Marlon Valério
┌─────────────────┐
  Problems, lots of Problems
└─────────────────┘



Em 13 de setembro de 2011 10:26, Celso Henrique
<celsofigueir...@gmail.com>escreveu:

> Prezado.
> Desta forma que voce fez, o arquivo OERROR, vem duplicado, ou seja
> esta errado, mas para inserrir o cabeçalho, acho que voce deve usar a
> seguinte função:
> bytesWritten = sprintf(buffer,"Aqui vem o texto \n");
> fwrite(buffer, 1, bytesWritten, evilFile);
> tem que colocar antes do teste do arquivo.
>
> Celso.
>
>
> Em 13 de setembro de 2011 08:53, Rafael Vicentini
> <rafaestef...@gmail.com> escreveu:
> > Olhasó amigo... também estou participando do concurso mainframes 2011 da
> IBM.
> > Procurando ajuda pela 'net' né?
> >
> > Seguinte bro, primeiramente precisamos declarar a variavel evilFile e
> criação do
> > output OEVIl logo apos a criação do ODIOUS
> >
> > #include <string.h>
> >        FILE *odiousFile
> >        FILE *evilfile  /*variavel a ser inserida */
> >
> >
> >
> >
> >        /*************************************/
> >        /*     Open file to write output     */
> >        /*************************************/
> >        odiousFile = fopen("DD:ODIOUS", "w");
> >        if (odiousFile == NULL)
> >        {
> >                printf("open error:   %d/%s\n", errno, strerror(errno));
> >                exit(99);
> >        }
> >
> > /* codigo a ser inserido */
> >         evilFile = fopen("DD:OEVIL", "w");
> >        if (evilFile == NULL)
> >        {
> >                printf("open error:   %d/%s\n", errno, strerror(errno));
> >                exit(99);
> >        }
> >
> >
> >
> > Analisando o final do código, observei como ele obtém um número odioso:
> > int isOdious (int myInt)
> > {
> >
> >
> > /* Aqui ele gera o output pro arquivo error, pois se o número é igual a
> zero.*/
> >  int NumberOfOnes;
> >  NumberOfOnes=0;
> >  if (myInt==0) {
> >                         bytesWritten = sprintf(buffer,"0 not
> supported!\n");
> >                         fwrite(buffer, 1, bytesWritten, errorFile);
> >    return 100;
> >  }
> >
> >
> >
> > /* outro output pro arquivo error, caso for for maior que 1024 /*
> >  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;
> >  }
> >
> >
> >
> > /* Aqui ele divide a quantidade de 1`s por 2. Se restar 1, ele possui
> número */
> > /*impar de números 1  */
> >
> >  if (NumberOfOnes%2==1)
> >           return 1;
> >  else
> >    return 0;
> > }
> >
> >
> >
> >
> > Então pensei o seguinte: "Puxa, na listagem, se o número não é Odious,
> então ele
> > é Evil"
> >
> > Fiz as devidas inserções:
> >
> >         /*************************************/
> >         /*     Run program                   */
> >        /*************************************/
> >
> >
> >  while (fscanf(inputFile,"%d",&i) != EOF) {
> >    if (isOdious(i)==1) {
> >                           bytesWritten = sprintf(buffer,"%d is
> odious\n",i);
> >                           fwrite(buffer, 1, bytesWritten, odiousFile);
> >    }
> >
> > /* codigo a inserir                        /*
> >    if (isOdious(i)==0) {
> >                           bytesWritten = sprintf(buffer,"%d is
> evil\n",i);
> >                           fwrite(buffer, 1, bytesWritten, evilFile);
> >    }
> >
> >  }
> >
> >
> >
> > Salve e de um submit naqueles dois Arquivos que a apostila pediu. Se
> retornar
> > nenhum erro, entro de PARTE2.DATA será criado o arquivo OEVIL.
> > Entao compare com o arquivo ODIOUS.
> > Os números contidos em uma listagem não estarão contidos na outra.
> > Verifique o arquivo de erros, se continua somente com as duas linahs
> originais.
> >
> > Espero ter ajudado se ficou confuso o post, mais tarde te envio o número
> das
> > linhas a inserir o codigo. Entendo muito pouco de C, somente li algum
> tempo
> > atrás qndo me preparava para um concurso. Caso alguém que domine
> totalmente a
> > linguagem puder auxiliar, a discussão será mais rica.
> >
> >
> >
> >
> > Celso, estou com dificuldades em inserir o cabeçalho nos arquivos. Não
> conheço
> > bem a função fwrite. Voce consegue fazer isso?
> >
> >
> >
> >
> >
> >
> >
> > --
> > 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