elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 160
11  Programación / Programación C/C++ / Re: Pasar string a time. Número de días entre dos fechas en: 3 Junio 2015, 16:21 pm
¿no es ésta una solución más sencilla?
En el caso que mencionas si, es mas corta.

Por cierto se puede abreviar un poco mas. Cuando la fecha para ser valida solo puede ser seguida del avance de linea puedes indicarlo en la cadena de formato con "%1[\n]" y verificar que el resultado de la función sea igual a cuatro. Mas o menos así:
Código
  1. if (scanf("%2u/%2u/%4u%1[\n]", &dia, &mes, &anno, &truco) == 4){
  2.   puts("OK");
  3. }else {
  4.   puts("Entrada no valida");
  5. }

Edito: Ups, el especificador "%[]" almacena los caracteres coincidentes seguidos de un '\0' por lo que el objeto destino no puede ser una variable de tipo char sino un array de estos (mea culpa).

Un saludo
12  Programación / Programación C/C++ / Re: Programa que cuenta vocales en: 2 Junio 2015, 16:37 pm
No me ejecuta como quiero ;c necesito que me cuente las vocales ingresadas y no me sale
Ademas de lo ya comentado por engel lex y 0xFer deberías evitar el uso de la biblioteca conio de Borland (la explicación en |Lo que no hay que hacer en C/C++. Nivel basico|) y un error importante se encuentra en la función de lectura:
Código
  1. char* pidetexto()
  2. {
  3. char *q,text[50];
  4. printf("\ningrese el texto: ");
  5. scanf("%s", &text);
  6. q=text;
  7. return q;
  8. }
El valor que retorna "pidetexto" es la dirección de "text" pero al ser esta una variable local se destruye (su memoria se libera) al terminar la función con lo cual el puntero resultante (de la llamada) no es valido.

Para solucionarlo debes reservar memoria con malloc y utilizar la dirección en memoria del bloque como valor de retorno de la función, por ejemplo:
Código
  1. char *pidetexto(void)
  2. {
  3.   char *q;
  4.  
  5.   if ((q = malloc(50)) != NULL){
  6.      puts("Ingrese el texto:");
  7.      scanf("%s", q); /* Falta validar el resultado de scanf */
  8.   }
  9.  
  10.   return q;
  11. }
Y después del uso del bloque hay que liberar la memoria mediante la función free.

Un saludo
13  Programación / Programación C/C++ / Re: (Ayuda) Skin para Eclipse CDT estilo Visual Studio 2013 (Oscuro) en: 2 Junio 2015, 16:18 pm
No utilizo ese IDE pero tal vez te sea de utilidad:
Eclipse Color Themes
Visual Studio 11 Dark

Un saludo
14  Programación / Programación C/C++ / Re: ayudaa..no se ejecuta(urgente) en: 2 Junio 2015, 15:37 pm
hice este codigo para que muestre el numero 1 en la posicion que desse el usuario...pero no imprime nada
Cambios adicionales que debes hacer al programa:

* Puedes inicializar todos los elementos del array a cero con:
Código
  1. int matriz[100][100] = {0};
A continuación para colocar el elemento indicado por el usuario a uno basta con la asignación (en lugar del primer par de bucles anidados):
Código
  1. matriz[inicialf][inicialc] = 1;

* La asignación en el mentado bucle esta mal:
Código
  1. for (int i=1 ; i<=filas; i++){
  2.   for (int j=1 ; j<=columnas; j++){
  3.      if (i==inicialf && j==inicialc){
  4.         matriz[inicialf][inicialc]=1; /* 1 */
  5.      }
  6.  
  7.      matriz[i][j]=0; /* 2 */
  8.   }
  9. }
Ya que solo en una iteración se cumplirá la condición del bucle y por ello se asignara el valor uno pero no importa ya que a continuación se asigna el valor cero. En su lugar hay que utilizar una sentencia condicional if ... else, de esta forma:
Código
  1. for (int i=1 ; i<=filas; i++){
  2.   for (int j=1 ; j<=columnas; j++){
  3.      if (i==inicialf && j==inicialc){
  4.         matriz[inicialf][inicialc]=1;
  5.      }else {
  6.         matriz[i][j]=0;
  7.      }
  8.   }
  9. }

* En el ultimo par de bucles anidados utilizas el operador ">=" cuando debería ser "<=" y en la condición del bucle interno comparas contra "filas" cuando debería ser "columnas".

* En ese mismo bucle utilizas para la salida:
Código
  1. cout<<"\t", matriz[i][j];
Cuando debería ser:
Código
  1. cout << "\t" << matriz[i][j];

* En C y C++ los indices no inician en uno, inician en cero, hay que cambiar todos los bucles. Por ejemplo el ultimo par termina así:
Código
  1. for (int i = 0; i != filas; ++i){
  2.   for (int j = 0; j != columnas; ++j)
  3.      cout << "\t" << matriz[i][j];
  4.  
  5.   cout << std::endl; // Falta incluir <iostream>
  6. }

Un saludo
15  Programación / Programación C/C++ / Re: me aparece id return 1 exit status en: 2 Junio 2015, 05:48 am
estoy aprendiendo a programa con dev c++ 5.11
Cuando compilo me aparece [Error] Id returned 1exit status.
Aparte de lo ya comentado por 0xFer deberías evitar el uso de la biblioteca conio de Borland (la explicación en |Lo que no hay que hacer en C/C++. Nivel basico|), falta incluir los encabezados <stdlib.h> y <stdio.h> para tener acceso a los prototipos de las funciones rand y printf y por ultimo en las sentencias:
Código
  1. m = rand() % 1 + 1;
  2. l = rand() % 1 + 1;
  3. ll = rand() % 1 + 1;
  4. p = rand() % 1 + 1;
Las cuatro variables terminaran con el valor uno ya que el residuo de todo numero entero dividido por uno es cero. Si quieres generar los valores 0 o 1 y almacenarlos en las variables hay que utilizar "variable = rand() % 2". Otro detalle es que el programa generara siempre la misma salida, para evitarlo hay que utilizar srand antes de cualquier llamada a rand, puedes consultar ejemplos sobre ello mediante el motor de búsqueda de los foros.

Un saludo
16  Programación / Programación C/C++ / Re: (Ayuda) Error de ejecución Exited with return value 3221225477 en: 2 Junio 2015, 05:16 am
Este es el error que me sale y no me deja seguir ingresando datos
Ademas de los comentado por Stakewinner00 lo primero que debes hacer es evitar el uso de la biblioteca conio de Borland y fflush(stdin), las razones de ello en el tema |Lo que no hay que hacer en C/C++. Nivel basico|. También deberias utilizar la biblioteca estándar de C++ empezando por la clase string.

La mayoría de los errores son de dos tipos, el primero es utilizar "d" como la cadena de formato de scanf cuando debería ser "%d". El segundo es tratar de intercalar la cadena de formato de printf con sus argumentos:
Código
  1. printf("\nEl dinero recaudado por la zona %d", i + 1, " es: %d", A3[i].acum_imp[0]);
En su lugar debes indicar primero la cadena de formato y después de ella cada uno de los argumentos adicionales:
Código
  1. printf ("El dinero recaudado por la zona %d es: %d\n", i + 1, A3[i].acum_imp[0]);

Un saludo
17  Programación / Programación C/C++ / Re: Una mano, tengo un problema con un [Errro] Id returned 1 status. en: 2 Junio 2015, 04:39 am
Como podria ejecuatr los programas desde la consola por que no he encontrado nada sobre el tema
Como ya te comentaron depende del compilador, en el caso de mingw (incluido en Dev-C++) en su pagina principal hay una guiá sencilla: MinGW for First Time Users HOWTO.

Otro error que se debe corregir se encuentra en la linea:
Código
  1. System("pause");
En C las mayúsculas y minúsculas son caracteres distintos, el nombre correcto de la función es "system" y antes de utilizarla debes incluir el encabezado <stdlib.h>:
Código
  1. #include <stdlib.h>
  2.  
  3. /* ... */
  4.  
  5. system("pause");

Un saludo
18  Programación / Programación C/C++ / Re: [Consulta] Programa en C, Geany.. en: 1 Junio 2015, 18:21 pm
tengo un problema en la siguente linea de codigo me tira un warning en un corchete que esta debajo de float prom (float n1,float n2, float n3) en las funciones linea 110 ve:

[...]

Código
  1. #include <stdio.h>
  2. int par (int numero);
  3. float prom (float n1, float n2, float n3);
  4.  
  5. /* ... */
  6.  
  7. prom (n1,n2,n3);
  8.  
  9. /* ... */
  10.  
  11. float prom (float n1,float n2, float n3)
  12. {
  13.   float resultado;
  14.   resultado= (n1+n2+n3)/3;
  15.   printf ("\nEL promedio es: %f\n",resultado);
  16. }

dice:

Código:
warning: control reaches end of non-void function
Ese mensaje se genera porque declaras la función "prom" como una cuyo tipo de retorno es float pero dentro de ella no devuelves valor alguno.

Para solucionarlo ya que la utilizas solo por su efecto (calculo e impresión del promedio) cambia su tipo de retorno a void:
Código
  1. #include <stdio.h>
  2. int par (int numero);
  3. void prom (float n1, float n2, float n3);
  4.  
  5. /* ... */
  6.  
  7. prom (n1,n2,n3);
  8.  
  9. /* ... */
  10.  
  11. void prom (float n1,float n2, float n3)
  12. {
  13.   float resultado;
  14.   resultado= (n1+n2+n3)/3;
  15.   printf ("\nEL promedio es: %f\n",resultado);
  16. }

Un saludo
19  Programación / Programación C/C++ / Re: Variable Corrupta en: 1 Junio 2015, 17:59 pm
En C++ cuando declaras un array indicas su numero de elementos N y después accedes a estos utilizando los indices 0 .. N-1.

En tu caso el error se debe a que tratas de acceder al array como si este consistiera de nueve elementos cuando en realidad solo tiene ocho:
Código
  1. typedef float mat[8]; // array de 8 elementos, indices validos 0 .. 7

Un saludo
20  Programación / Programación C/C++ / Re: copiar trozos de memoria en: 1 Junio 2015, 17:39 pm
Para que alguien en los foros pueda ayudarte lo primero que debes hacer es indicar el lenguaje de programación que utilizas y publicar el código fuente donde tienes dificultades.

Un saludo
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 160
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines