/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

no puedo inicializar una matriz

 
      Índice del Foro elrincondelc.com -> Dev-C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
CArce



Registrado: 25 Ago 2007
Mensajes: 9

MensajePublicado: 25/08/2007 6:15 pm
Título: no puedo inicializar una matriz

Hola quiero ingresar una matriz, con sus valores para luego trabajar con ella, utilizo los comandos que he encontrado en diversos sitios pero no me resulta, lo que hago es esto:

#include <stdio.h>

int main()
{
char cliente1;
char cliente2;
printf ("\nIntroduzca al primer cliente: ");
cliente1=getche();
printf ("\nIntroduzca al segundo cliente:\n ");
cliente2=getche();



int matriz[2],[2]={
{1,2},
{3,4}
};


system ("pause");
return 0;
}


pero al compilar me arroja error en la linea int matriz[2],[2], no se que pasa, me pueden ayudar por favor. Shocked
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 25/08/2007 7:14 pm
Título:

Cuando declaras el array tienes una coma de mas, esta es la causa del mensaje de error, deberia ser:
Código:
int matriz[2][2] = {
   {1, 2},
   {3, 4}
};


Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
CArce



Registrado: 25 Ago 2007
Mensajes: 9

MensajePublicado: 25/08/2007 7:22 pm
Título: no puedo inicializar una matriz

Hola, le quite la coma pero el error continua.

Gracias
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 25/08/2007 7:30 pm
Título:

No deberia emitir tu compilador un mensaje de error, al menos no en relacion con esa declaracion.

¿Cual es el texto exacto de ese mensaje?

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
CArce



Registrado: 25 Ago 2007
Mensajes: 9

MensajePublicado: 25/08/2007 7:36 pm
Título: no puedo inicializar una matriz

En la primera pestaña aparece:


line Unit Message

14 untitled2.c parse error before `int'




y en la otra pestaña aparece:



Link

gcc: c:\documents and settings\claudio\mis documentos\programas en c_dev-c\primera tarea\untitled2.o: No such file or directory
gcc: file path prefix `C:\DEV-C_~1\Bin\' never used


gcc: c:\documents and settings\claudio\mis documentos\programas en c_dev-c\primera tarea\untitled2.o: No such file or directory
gcc: file path prefix `C:\DEV-C_~1\Bin\' never used


uso la version 4 de Dev-C si eso ayuda en algo.
Volver arriba
CArce



Registrado: 25 Ago 2007
Mensajes: 9

MensajePublicado: 25/08/2007 8:14 pm
Título: no puedo inicializar una matriz en dev-c

Qué paso, un amigo lo trato de compilar y tampoco le corrió.
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 25/08/2007 8:50 pm
Título:

El problema con tu programa (y posiblemente la causa del error) es que este contiene otros errores como la falta de headers (archivos de inclusion) y otros detalles, pero la declaracion del array tal como te indique es correcta.

Intenta con este programa, debe de compilar y ejecutarse sin problemas:
Código:
#include <stdio.h>

int main(void)
{
   int matriz[2][2] = {
      {1,2},
      {3,4}
   };
   int i, j;
   
   for (i = 0; i < 2; i++){
      for (j = 0; j < 2; j++)
         printf("%3d", matriz[i][j]);
     
      putchar('\n');
   }
   
   return 0;
}


Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
CArce



Registrado: 25 Ago 2007
Mensajes: 9

MensajePublicado: 25/08/2007 9:12 pm
Título: Me compila bien

El programa que me enviaste se ejecuta sin problemas, voy a revisar los detalles que me dices aunque no los entiendo bien.

Gracias que estes bien
Volver arriba
CArce



Registrado: 25 Ago 2007
Mensajes: 9

MensajePublicado: 25/08/2007 9:50 pm
Título: para completar

me puse a probar que parte del código estaba mala y me di cuenta de algo:


este código funciona bien, fui borrando cosas hasta que compilara:


#include <stdio.h>

int main(void)
{
char cliente1;
char cliente2;
int matriz[2][2] = {
{1,2},
{3,4}
};
system ("pause");
return 0;
}





y este otro código también esta bien:


#include <stdio.h>

int main(void)
{
char cliente1;
char cliente2;
printf ("\nIntroduzca al primer cliente: ");
cliente1=getche();
printf ("\nIntroduzca al segundo cliente:\n ");
cliente2=getche();
printf ("\n\n\nLos clientes que ingresan al sistema son:\n %c,%c",cliente1,cliente2);
system ("pause");
return 0;
}




El código completo es:



#include <stdio.h>

int main(void)
{
char cliente1;
char cliente2;
printf ("\nIntroduzca al primer cliente: ");
cliente1=getche();
printf ("\nIntroduzca al segundo cliente:\n ");
cliente2=getche();
printf ("\n\n\nLos clientes que ingresan al sistema son:\n %c,%c",cliente1,cliente2);
int matriz[2][2] = {
{1,2},
{3,4}
};
system ("pause");
return 0;
}





Hay una incompatibilidad entre estas dos partes del código:




printf ("\nIntroduzca al primer cliente: ");
cliente1=getche();
printf ("\nIntroduzca al segundo cliente:\n ");
cliente2=getche();
printf ("\n\n\nLos clientes que ingresan al sistema son:\n %c,%c",cliente1,cliente2);




y esta parte:


int matriz[2][2] = {
{1,2},
{3,4}
};



por qué puede ocurrir esto????????????

Gracias[/b]
Volver arriba
CArce



Registrado: 25 Ago 2007
Mensajes: 9

MensajePublicado: 25/08/2007 9:55 pm
Título: otra cosa más curiosa

probé todo el código de nuevo pero al revés declare la matriz antes que las otras variables y me compilo sin problemas:


#include <stdio.h>

int main(void)
{

int matriz[2][2] = {
{1,2},
{3,4}
};

char cliente1;
char cliente2;
printf ("\nIntroduzca al primer cliente: ");
cliente1=getche();
printf ("\nIntroduzca al segundo cliente:\n ");
cliente2=getche();
printf ("\n\n\nLos clientes que ingresan al sistema son:\n %c,%c",cliente1,cliente2);
system ("pause");
return 0;
}



por qué puede ser esto????
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 26/08/2007 7:43 am
Título:

Eso sucede porque estas compilando tu codigo fuente como C segun su estandar de 1990 (ISO-C90), segun este no es valido intercalar declaraciones y sentencias, un ejemplo de esto es tu primer programa donde la declaracion del array es correcto pero no esta en un lugar valido:
Código:

#include <stdio.h>

int main()
{
   char cliente1; /* Declaracion, OK */
   char cliente2; /* Declaracion, OK */
   
   /*
   ** En C90 una vez que se encuentra una sentancia
   ** como esta:
   */
   printf ("\nIntroduzca al primer cliente: ");
   
   /*
   ** Lo que sigue solo pueden ser sentencias:
   */
   cliente1 = getche(); /* OK pero falta incluir conio */
   printf ("\nIntroduzca al segundo cliente:\n ");
   
   /* ... */
   
   /*
   ** No es valido intercalar sentencias con declaraciones
   ** como la siguiente, esta es correcta en su forma pero
   ** no es valida debido a su ubicacion:
   */
   int matriz[2][2]={
      {1,2},
      {3,4}
   };
   
   /* ... */


En resumen en C90 tienes que colocar en cada bloque primero todas las declaraciones y a continuacion de estas las sentencias como las asignaciones, bucles, etc.

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
CArce



Registrado: 25 Ago 2007
Mensajes: 9

MensajePublicado: 26/08/2007 1:51 pm
Título: Gracias por la ayuda

Muy bien gracias, soy nuevo en esto y toda ayuda es muy bien recibida.

Gracias

Claudio.
Volver arriba
      Índice del Foro elrincondelc.com -> Dev-C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com