Article View: es.comp.os.linux.programacion
Article #9387Re: variables
From: Javicho
Date: Tue, 23 Jul 2002 18:09
Date: Tue, 23 Jul 2002 18:09
48 lines
2776 bytes
2776 bytes
Un Mar 23 Jul 2002 19:26 Alguien que no era PAQUITO INES pero era quantium,
junto las siguientes letras:
> Hola a todos.
> Tengo una duda sobre el siguiente programa:
>
> main()
> {
> int i, mayor, menor, suma=0, array[5];
> unsigned long int multiplicacion=1;
.....
> Lo que hace este programa es pedir al usuario 5 numeros, despues dice la
> suma , la multiplicacion, el numero mas peque�o y el mas grande de todos
> estos numeros. Pues bien, para saber el programa cual es el numero mas
> peque�o compara si el numero introducido es mas peque�o que el anteriosr
> insertado: if(array[i]>mayor) { mayor=array[i]; } , pero como podemos
> ver al principio del programa: int i, mayor.... no tiene ningun valor
> �que valor entonces tiene mayor cuando lo compara la primera vez con el
> primer elemento del array ?
>
> Un saludo a todos =)
Hola
El valor que toma una variable que no haya sido previamente inicializada es
el que haya en la posicion de memoria que se le ha asignado. Este valor es
"basura" y no coincidira entre distintas ejecuciones( a no ser que te den
justo la misma posicion de memoria).
Me explico mejor. Al declarar un entero se reservan (normalmente 4 bytes)
de memoria que son apuntadas por mayor, esas posiciones de memoria no se
inicializan por defecto a ningun valor, asi que contendran lo que tuvieran
y tu comparacion se volvera loca.
Solucion: Si por ejemplo haces int mayor=0 ( o lo que sea) en la
declaracion o bien mayor=lo que sea antes de empezar a comparar el valor
que pongas ya se almacena en esas posicones de memoria y el programa
funcionara como esperabas.
Nota que lo mismo sucedera con la variable menor
--
jdiego@grpssPUNTOssrPUNTOupmPUNTOes
Technical Details
Message-ID:
<3d3d9a3c@news.upm.es>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed00.sul.t-online.de!t-online.de!diablo.theplanet.net!news-hub.cableinet.net!blueyonder!amsnews01.chello.com!trev!easynet-melon!easynet.net!news.rediris.es!news-2.rediris.es!138.100.251.9.MISMATCH!news.upm.es!138.4.40.3References:
<3D3D91CD.4070706@lycos.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,f64e3eeff00afd7c X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2002-07-23 11:00:07 PST From: Javicho <javicho@enfrente.de.ordenador> Subject: Re: variables Newsgroups: es.comp.os.linux.programacion Date: Tue, 23 Jul 2002 20:09:27 +0200 References: <3D3D91CD.4070706@lycos.es> Lines: 48 Organization: GRPSS-UPM User-Agent: KNode/0.6.1 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8Bit NNTP-Posting-Host: 138.4.40.3 Message-ID: <3d3d9a3c@news.upm.es> X-Trace: 23 Jul 2002 20:02:36 +0100, 138.4.40.3 Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed00.sul.t-online.de!t-online.de!diablo.theplanet.net!news-hub.cableinet.net!blueyonder!amsnews01.chello.com!trev!easynet-melon!easynet.net!news.rediris.es!news-2.rediris.es!138.100.251.9.MISMATCH!news.upm.es!138.4.40.3