[Ubuntu-BR] [OFF-TOPIC] Programa em linguagem C.
Marlon
yodatsi em gmail.com
Terça Setembro 20 01:53:08 UTC 2011
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
<celsofigueiredo em 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
> <rafaestefano em 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
>
More information about the ubuntu-br
mailing list