🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #9336

Re: matrices

#9336
From: Mick
Date: Sun, 28 Jul 2002 10:06
54 lines
3079 bytes
quantium wrote:

> Hola a todos!
> Tengo un peque�o problema con matrices, el ejemplo es el siguiente, yo
> quiero que un programa pregunte la temperatura media de todos los dias
> de la semana de los 12 meses del a�os, esto se podria hacer usando la
> matriz: char[12][31]; , los 12 son los meses y los 31 los dias (ya se
> que no todos los meses tienen 31 dias jeje ) pues bien, yo a esos 12
> quiero ponerle el nombre de los meses, y he querido usar el siguiente
> codigo:
> 
> 
char*mes[12]={"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"}[31];
> Como podemos observar, al final de Diciembre esta puesto [31] , que
> serian los dias de los meses que he puesto antes: 1-enero 2-febrero ....
> 
> Pero al intentar compilar esto me da error. �teneis alguna idea?
> Muchas gracias :-)

Eso no es sintaxis de C, no puedes poner [31]  al final, en el improbable 
caso de que C aceptase esa sintaxis, esos 31 elementos de que tipo de datos 
serian ?

Un array en C solo puede ser de un mismo tipo de datos no puedes tener un 
array en el que unos elemento sean de un tipo y otros de otro.

Lo que necesitas es utilizar estructuras. Algo como esto seria suficiente:

-------------8<-----------8<-------------------

typedef struct {
 char *name;
 double temp[31];
} MesTemp;       // Definimos nueva estructura que 
                 // consta de un nombre mas un array de 31 elementos
                 // de tipo double (si no necesitas decimales puedes
                 // poner int en lugar de double)

MesTemp mes[12]=   // Definimos array de 12 MesTemp
{
 {"enero"},
 {"febrero"},
 {"marzo"}
};

-----------8<-----------8<-------------

mes[2].name     -> "marzo" (0=enero 1=febrero, etc).

mes[3].temp[0] ->  Temperatura del primer dia de abril.
                  (Los arrays en C comienzan en el elemento 0).


Salud2 !!
Technical Details
Message-ID: <ai0fpc$h0i$1@nsnmpen2-gest.nuria.telefonica-data.net>
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!newsfeed.freenet.de!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmpen2-lo.nuria.telefonica-data.net!not-for-mail
References: <3D433411.7090906@lycos.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,2d8513eda52a92ad
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-07-28 03:07:42 PST
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!newsfeed.freenet.de!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmpen2-lo.nuria.telefonica-data.net!not-for-mail
From: Mick <michaell@teleline.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: matrices
Date: Sun, 28 Jul 2002 12:06:48 +0200
Organization: Michael Corp
Lines: 54
Message-ID: <ai0fpc$h0i$1@nsnmpen2-gest.nuria.telefonica-data.net>
References: <3D433411.7090906@lycos.es>
NNTP-Posting-Host: 213-98-127-85.uc.nombres.ttd.es
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8Bit
X-Trace: nsnmpen2-gest.nuria.telefonica-data.net 1027850860 17426 213.98.127.85 (28 Jul 2002 10:07:40 GMT)
X-Complaints-To: usenet@nsnmpen2-gest.nuria.telefonica-data.net
NNTP-Posting-Date: Sun, 28 Jul 2002 10:07:40 +0000 (UTC)
User-Agent: KNode/0.7.1