Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - MIG80

#21
Si, si. Edite mi respuesta anterior porque me di cuenta de mi error. Bueno, se te olvido finalizar las cadenas de caracteres. Antes del cout debes poner la marca de fin de cadena ('\0') en los arreglos 'arreglo1', 'arreglo2' y 'arreglo3':


...
arreglo1[cont+1]=arreglo2[cont+1]=arreglo3[cont+1]='\0';
cout<<arreglo1<<arreglo2<<arreglo3<<endl;
...


PD: No grites y aprende a decir gracias.

Saludos.
#22
 Que raro, no el código no parece tener errores.
#23
Si declaramos:


const char *p;
char *q;
...


y luego hacemos la siguiente asignación:


q=p;


En C  nos dara un Warning; en C++ un error

En ambos casos compilara bien con un cast:


q=(char *)p;

#24
Cita de: Littlehorse en  6 Julio 2010, 03:14 AM
czealt, recuerda que utilizar fflush con stdin invoca comportamiento indefinido.

Saludos

Bueno, reemplazando la línea fflush(stdin), el código corregido seria:


int leer3ent(int *c1,int *c2,int *c3)
{
 int res,lon_ent;
 char remanente[1000],lineaentrada[1000];
 
 fgets(lineaentrada,1000,stdin);
 lon_ent=strlen(lineaentrada);
 if(lon_ent)
 {
   if(lineaentrada[lon_ent-1]!='\n')
   {
     while(getchar()!='\n')
     ;
   }
 }
 res=sscanf(lineaentrada,"%u %u %u%s",c1,c2,c3,remanente);
 return (res==3)?1:0;
}

int LeerLado(EstadoNetwork n)
{
 res=leer3ent(&c1,&c2,&c3);
 if(res==3)
   res=CargarLado(n->network,c1,c2,c3);
 else
   res=0;
 return res;
}



a partir de ahora recordare no usar fflush(stdin), gracias por la información.

Saludos.
#25
Bueno...talvez esto te solucione el problema con la entrada...


int leer3ent(int *c1,int *c2,int *c3)
{
 int res;
 char remanente[1000],lineaentrada[1000];
 
 fgets(lineaentrada,1000,stdin);
 fflush(stdin);
 res=sscanf(lineaentrada,"%u %u %u%s",c1,c2,c3,remanente);
 return (res==3)?1:0;
}

int LeerLado(EstadoNetwork n)
{
 res=leer3ent(&c1,&c2,&c3);
 if(res)
   res=CargarLado(n->network,c1,c2,c3);
 return res;
}


Saludos.
#26
Hola razler, bueno cuando dices "insertar" asumo que deseas sustituir todos los valores de una fila o columna de una matriz. Si ese es el caso, lo más sencillo seria convertir el vector de nuevo en una matriz, efectuar las operaciones de inserción en esa matriz y luego convertirla de nuevo en su representación optimizada de vector.

Saludos.
#27
Programación C/C++ / Re: sucesion!!!!
4 Julio 2010, 02:37 AM
La línea n=(3*n+1)/2; debes reemplazarla por n=3*n+1;. Y antes del system("pause") debes imprimir el ultimo número de la serie: cout<<"1\n";
#28
Otra solución:

#include <stdio.h>
#include <ctype.h>

int esvocal(char c);

int main(void)
{
 char *pchar,str[]="MurCieLago";
 int nv=0;

 for(pchar=str;*pchar;pchar++)
 {
    if(esvocal(*pchar))
      nv++;
 }
 printf("Cantidad de vocales:%d\n",nv);
 
 return 0;
}

int esvocal(char c)
{
 c=tolower(c);
 return (c=='a'||c=='e'||c=='i'||c=='o'||c=='u');
}


Opino que las soluciones recursivas solo deben ser utilizadas cuando hacen más facil el entender el problema. Como en el caso de las torres de hanoi por ejemplo.
#29
Muy bien (señido a la definición, como debe de ser).

Saludos.
#30
OK nicolas_cof si 0 es un valor válido como entrada para el programa que calcula el M.C.D de dos números dime cuanto es el MCD de 0 y 1?