[Ubuntu-BR] [OFF-TOPIC] Programa em linguagem C.
Celso Henrique
celsofigueiredo em gmail.com
Segunda Setembro 12 13:26:59 UTC 2011
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
<jeferod83 em 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.cavalcante em gmail.com> escreveu:
>
>> Em 10 de setembro de 2011 12:57, Celso Henrique
>> <celsofigueiredo em 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
>
More information about the ubuntu-br
mailing list