Article View: es.comp.os.linux.programacion
Article #11128Re: problemas con C (complementa a respuesta a Iñaki)
From: Xavier Montero
Date: Sun, 30 Dec 2001 02:31
Date: Sun, 30 Dec 2001 02:31
66 lines
3425 bytes
3425 bytes
> Oops! Perd�n.... era la funci�in div() del stdlib.h la que
> hace divisiones enteras (y de paso tambi�n el m�dulo) �Y en
Mando una modificaci�n del programa que he hecho para el otro
post de reply a I�aki, con una adici�n, el div() para ver
c�mo es la definici�n del "resto" de la divisi�n entera para C,
para n�meros negativos y parece que sigue empe�ado en que
tenga tambi�n un resto negativo.
Como comentario, esta respuesta de uno que tiene pinta de
profe de universidad, por su signature, corrobora mi defensa
de que m�dulo y resto conciden y de que _ambos_ deben ser
positivos por hue^h^h^h definici�n, por mucho que el C
se empe�e en hacerlos negativos a ambos o el ADA se empe�e
en hacer (seguramente) negativo al resto y probablmente
el m�dulo lo deje positivo (o al rev�s, pero no tendr�a
tanto sentido):
http://www.cosc.canterbury.ac.nz/notices/cosc227/msg00025.html
(su p�g personal en http://www.cosc.canterbury.ac.nz/~krys/)
--- 8< ---------------------------------------------------
xavi@inspire:~/j$ g++ -lm modulus.c
xavi@inspire:~/j$ a.out
2 2 2 2
-2 -2 1 -2
xavi@inspire:~/j$ cat modulus.c
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void main(void)
{
int a, b;
int c, d;
float quoscient;
a = 5;
b = 3;
c = -5;
d = 3;
quoscient = (float)a / (float)b;
printf("%d\t", a % b );
printf("%d\t", a - (b * (int)quoscient));
printf("%d\t", a - (b * (int)floor(quoscient)));
printf("%d\n", div(a, b).rem);
quoscient = (float)c / (float)d;
printf("%d\t", c % d );
printf("%d\t", c - (d * (int)quoscient));
printf("%d\t", c - (d * (int)floor(quoscient)));
printf("%d\n", div(c, d).rem);
}
xavi@inspire:~/j$
--- 8< ---------------------------------------------------
Hala... ya teneis material para pensar cuando os vay�is a
dormir... ;-D
Saludos!
Xavi.
Technical Details
Message-ID:
<3C2E7C7E.803FD103@dsitelecom.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!opentransit.net!newsfeed.comtenidos.com!newsfeeder.wanadoo.es!news.antakira.com!not-for-mailReferences:
<ab4993a4.0112141425.1c82dbad@posting.google.com> <3c222dcb@filemon.telecable.es> <3C228306.2972FE0A@dsitelecom.com> <251cb474.0112241016.15962dd2@posting.google.com> <3C2DE460.3E8E44A4@dsitelecom.com> <slrna2s36q.1m9.josh@monegros.homeip.net> <3C2E3C5F.186701F8@dsitelecom.com>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,108ef0ba0c562fe9 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2001-12-29 19:01:04 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!opentransit.net!newsfeed.comtenidos.com!newsfeeder.wanadoo.es!news.antakira.com!not-for-mail From: Xavier Montero <xmontero@dsitelecom.com> Newsgroups: es.comp.os.linux.programacion Subject: Re: problemas con C (complementa a respuesta a Iñaki) Date: Sun, 30 Dec 2001 03:31:26 +0100 Organization: Digital Sound Items Lines: 66 Message-ID: <3C2E7C7E.803FD103@dsitelecom.com> References: <ab4993a4.0112141425.1c82dbad@posting.google.com> <3c222dcb@filemon.telecable.es> <3C228306.2972FE0A@dsitelecom.com> <251cb474.0112241016.15962dd2@posting.google.com> <3C2DE460.3E8E44A4@dsitelecom.com> <slrna2s36q.1m9.josh@monegros.homeip.net> <3C2E3C5F.186701F8@dsitelecom.com> NNTP-Posting-Host: 212.25.147.135 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: news.wanadoo.es 1009680885 12328 212.25.147.135 (30 Dec 2001 02:54:45 GMT) X-Complaints-To: usenet@wanadoo.es NNTP-Posting-Date: Sun, 30 Dec 2001 02:54:45 +0000 (UTC) X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U) X-Accept-Language: en