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 - DickGumshoe

#21
Programación C/C++ / Re: programacion
5 Febrero 2013, 00:51 AM
Hola.

¿Qué prefieres, C, o C++? Es la primera pregunta que te tienes que hacer para orientarte.

Para empezar, pues te sirve cualquier manual que sea bueno, pudiendo preguntar aquí tus dudas.

Además del libro que elijas (o web), en este enlace puedes consultar todas tus dudas, así como leer sobre muchas funciones que no podrías ni imaginarte que existen: http://www.cplusplus.com/ (una gran fuente de información).

Cualquier duda, pregunta.  ;)
#22
Cita de: Puredepapas en  1 Febrero 2013, 21:56 PM
switch (x){
case 1:burbuja();
break;
case 2:seleccion();
break;
case 3:
seguir = 0;
break;
default: cout<<"ERROR, OPCION INVALIDA.."<<endl; //OPCION INVALIDA.
break; //te falto el break
}

Si no recuerdo mal, en el 'default' del switch no es necesario añadir "break", puesto que detrás no hay ningún 'case'.
#23
Juegos y Consolas / Re: Mejor juego de 2012
12 Enero 2013, 19:36 PM
El mejor para mí ha sido Darksiders II (versión de Wii U).
#24
Programación C/C++ / Re: Error en malloc()
9 Noviembre 2012, 15:18 PM
Si lo que quieres es reservar sizeMalloc espacios de char, debes hacer esto:

char* funcion(int sizeMalloc){
     char* buffer=(char*)malloc(sizeMalloc * sizeof(char));
     return buffer;
}


Un saludo.
#25
Programación C/C++ / Re: Duda para comparar
3 Noviembre 2012, 15:55 PM
Supongamos que tenemos dos variables: cadena[10] = "Casa" y letra = 'C' (una es una cadena y otra un carácter). Si lo que quieres es comparar la primera letra de la cadena con la variable 'letra', lo que tienes que hacer es:

if(cadena[0] == letra)

Es decir, para comparar un solo carácter, solo es necesario usar la sentencia if y el operador de comparación (==).
#26
Cita de: Caster en 31 Octubre 2012, 23:57 PM
Si, el codigo funciona, el uso de return 0 en medio del programa nose si es correcto, supongo que si, pero el bucle while que contiene return 0, no tiene sentido que sea un bucle, porque esa sentencia termina el programa, entonces solo se ejecutara una vez, lo mas logico seria con un if, cambia esto:

while (mes == 0)
     {
      return 0;
     }


Por esto:

if (mes == 0) return 0;

Saludos


Normalmente se devuelve 0 cuando el programa termina correctamente u otro número si hay un error. Con el return 0 funcionará, pero como técnica sería mejor poner otro número (normalmente 1 o -1).

Saludos.
#27
Programación C/C++ / Re: Problema variable j
28 Octubre 2012, 12:57 PM
Cita de: Ander123 en 28 Octubre 2012, 09:07 AM
Si pero en el ciclo for donde se inicializa i  y j etc no entiendo como se relaciona la variable i con las variables.. con la que se relacione, para posteriormente poder igualar a j.

Lo siento, pero no entiendo bien tu pregunta... Tanto i como j empiezan en 0. Si i != j significa "si i es distinto de j". Si son distintos, es que algún nombre coincide, sino, ninguno es igual.
#28
Programación C/C++ / Re: Problema variable j
28 Octubre 2012, 00:26 AM
¿Te refieres a esto?:

if  (i  !=  j)
                   printf("  Este  nombre  se  encuentra  en  la  lista\n");
             else       
                   printf("  Este  nombre  no  se  encuentra  en  la  lista\n"); 


Si es así, como ya te dije, dentro del bucle for, si las dos variables (i y j) incrementan en 1 simultáneamente, y si las dos cadenas que comparas son iguales, j decrementa, ergo si i != j, significa que hay una cadena en nombres igual idéntica a otrosNombres, y sino, no serán iguales.

Un saludo.
#29
Programación C/C++ / Re: Problema variable j
27 Octubre 2012, 18:49 PM
Hola.

Antes de responder a tu duda, comentaré algunos errores del programa:

Declaras la variable nombres[10][10]. Eso bien. Pero después, en el primer for, pides los nombres, haciendo esto:

for  (i=0;  i<10;  i++)  
     scanf("%s",  &nombres);


Eso no es correcto. Para pedir un *char (cadena de caracteres), no se debe poner el & en el scanf, y para meter 10 nombres, uno en cada fila de la "matriz de letras", debes poner scanf("%s", nombres[i]); (para indicar el número del nombre que vas a pedir, es decir, empiezas por la fila 0 (o nombre 0), y vas así hasta el 9).

Por otra parte, para pedir cadenas de caracteres, te recomiendo usar gets() o fgets(), ya que son funciones específicas para dicha función, y pueden leer espacios, al contrario que scanf(), que cuando lee uno, para de leer los datos.

for  (i=0;  i<10;  i++)  
                       scanf("%s",  nombres[i]);


Dicho esto, respondo a tu duda:

Situémonos en el bucle for que está en el do-while. Las variables i y j incrementan en 1 simultáneamente. Si la variable "otrosNombres" contiene la misma información que "nombres" (strcmp compara dos cadenas: devuelve 0 si ambas son iguales, u otro número si son diferentes), a j se le resta 1. Así, al terminar el bucle for, si i y j son iguales, ninguna cadena contenida en "nombres" será idéntica a "otrosNombres", y si su valor es diferente, sí que hay un nombre igual que a cadena "otrosNombres".

Un saludo.
#30
Leosansan, antes afirmabas esto:

CitarDifícil que te de ese error cuando no tienes ni declarada la variable apellido ni aparece dicho nombre en los printf

Ahora dices que lo que falla es en que tiene que poner fflush(stdin)... Y precisamente fflush(stdin), además de no ser nada correcto, en este caso la función sería la misma que getchar(), que sí es correcto (y es lo mismo que lo que dijo también Caster)... Creo que estamos dándole muchas vuelvas al tema. Con mi primera respuesta ya solucionó su duda...:

CitarGracias para ayudar a un novatazo ^^

Funciona perfectamente, gracias. Aver si me acostumbro a poner siempre los getchar

Darg94, la forma correcta en el estándar de C de la función main es

int main()
{
...
return 0;
}

Es decir, que main es de tipo int en el estándar. El return 0 es porque, como toda función de tipo int, debe devolver algo. Se usa 0 si el programa terminó correctamente, u otro número si hubo algún error.