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

#601
Cita de: DanielC# en 16 Noviembre 2013, 01:45 AMlo que resta es saber cómo acceder
Por ejemplo al 3 teniendo el siguiente número 12345 sin pasar por el resto
Lo mejor es obtener cada uno de los dígitos mediante división y modulo como ya te comento xaps, esos dígitos los almacenas en un array para procesarlos después pero si lo piensas un poco estas haciendo de forma manual la misma operación que sprintf.

En cuanto al uso de esa función si el numero esta garantizado a ser positivo y lo imprimes con "%d" puedes ahorrarte la llamada a strlen utilizando:
longitud = sprintf(cad, "%d", numero);
Ya que el valor de retorno de sprintf es el numero de caracteres de la cadena generada sin contar el '\0'.

Un saludo
#602
Cuando tengas una duda lo primero que debes hacer es utilizar el motor de búsqueda para conocer si el problema (o uno similar) ya se ha planteado en los foros.

Dos temas similares al tuyo:
secuencia digital
contador de dos caracteres consecutivos en C

Un saludo
#603
Dos de calidad son g++ (parte de GCC y disponible para MS Windows y Linux) y Visual C++ de Microsoft.

Un saludo
#604
No necesitas de la variable "a", solo tienes que verificar en cada iteracion del bucle si el residuo de "n" dividido por "x" es cero y si es así imprimes el valor de "x":
Código (cpp) [Seleccionar]
for (x = 1; x <= n; x++)
   if (n % x == 0)
      cout << x << ' ';


Ademas el nombre correcto del encabezado es <iostream>, debes indicar que facilidades de la biblioteca estándar utilizas con (al menos) "using namespace::std;" y antes de utilizar la función system debes incluir el encabezado correspondiente: <cstdlib>.

Un saludo
#605
Cita de: Black Lotus en 14 Noviembre 2013, 07:48 AMsin embargo a la hora de tratar de mostrar datos por pantalla me genera un error...
Si solo quieres mostrar las lineas en el archivo puedes utilizar la función getline. Por ejemplo:
Código (cpp) [Seleccionar]
void mostrar()
{
   ifstream abrir_datos;
   char linea[4096]; // O algun otro valor apropiado
   
   abrir_datos.open("Transiciones.txt",ios::in|ios::app);
   
   while (abrir_datos.getline(linea, 4096))
      cout << linea << endl;

   abrir_datos.close();
}


Una forma mejor es utilizando la clase string y std::getline.

Por ultimo deberías de cambiar de compilador ya que los Borland, para ser diplomático, no tienen una buena reputación.

Un saludo
#606
Programación C/C++ / Re: Series numericas en c++
14 Noviembre 2013, 18:06 PM
No estoy seguro porque (por desgracia usual en estos casos) la descripción del problema por parte del OP no es tan clara como uno quisiera.

Por ejemplo el enunciado se puede interpretar como el calculo de:
(6 + 4) + (6 + 3) + (6 + 2) + ... (6 + N)
Donde N es un entero negativo indicado por el usuario.

Un saludo
#607
Cita de: Ozharu-Ad en 14 Noviembre 2013, 03:16 AMme han pedido desarrollar un examen en c++
Un problema con el programa es que no tiene nada de C++, después de solucionar los errores compila como C sin generar mensajes de error.


Cita de: Ozharu-Ad en 14 Noviembre 2013, 03:16 AMal ejecutar el programa me escribe los 10 reactivos y HASTA las respuestas que le corresponden al 9, me marca error en el programa (ventana emergente en windows "el pprograma no funciona correctamente..").
Eso sucede porque en C y C++ cuando se declara un array se indica su numero de elementos "N":
char* Reactivos[9];
char* Incisos[9];
char Respuestas[2];

Y se accede a los elementos del array mediante los indices 0 .. N-1.

No se puede, como es tu caso, utilizar el indice N porque ese elemento no existe:
Reactivos[9] = "\n10.int es una variable de tipo";
Incisos[9] = "\na)flotante \nb)entero \nc)caracter";
Respuestas[2] = "c";

La solución aquí es declarar los tres arrays con un elemento adicional.

Otro error se encuentra en las asignaciones utilizando el array "Respuestas":
char Respuestas[2]; /* Hay que cambiar el numero de elementos a tres */

/* ... */

Respuestas[0] = "a";
Respuestas[1] = "b";
Respuestas[2] = "c";

Ya que es un array de caracteres debes asignar caracteres literales y estos se delimitan con la comilla simple, en otras palabras debes utilizar 'a', 'b' y 'c'.

Un saludo
#608
Programación C/C++ / Re: Series numericas en c++
14 Noviembre 2013, 02:11 AM
Cita de: Vaagish en 13 Noviembre 2013, 23:59 PMSeria algo asi, pero en vez de sumar el for, tendria que restar.. o sea i--, no?
No porque el contador "i" inicia en 1 y termina en "n", en el ejemplo toma los valores 1 .. 4.

Si se trata de la serie 1 + 6, 2 + 6, ... N + 6 se puede calcular el resultado mediante la expresión:
int serie(int n)
{
   return n * 6 + n * (n + 1) / 2;
}


Un saludo
#609
Cita de: kikian94 en 11 Noviembre 2013, 11:51 AMtengo que hacer un programa que tenga varias opciones, la primera es la obtencion de un factorial mediante el uso de punteros y funciones de modo que dependiendo de si la variable comprobar es un 1,2 o 0 diga si el numero introducido es negativo, es correcto o ha habido desbordamiento, el problema es que he hecho todo pero al ejecutar el programa no carga y da error
Como ya te comentaron (salvo el ultimo punto):

* El problema principal se debe a que declaras en ambas funciones (main y "factorial") una variable con el nombre "factorial".

* En la función main declaras y tratas de utilizar una variable con el nombre "pfactorial":
int *pfactorial;

/* ... */

printf ("El Factorial del numero: %d es: %d \n", numero, *pfactorial);

En su lugar solo tienes que imprimir el valor de la variable cuya dirección pasas en la llamada a la función "factorial".

* Cuando se desborda un entero con signo en C ello resulta en comportamiento no definido. Para evitarlo en lugar de "a * b <= max" utilizas "a <= max / b" donde max es el valor máximo para el tipo signed int, ese valor esta dado por la macro INT_MAX definida en <limits.h>.

Un saludo
#610
Cuando publiques código fuente por favor utiliza las etiquetas de código. Estas se agregan mediante el cuadro desplegable con el texto "GeSHi" en la pagina de composición de mensajes, solo tienes que seleccionar ahí el lenguaje (C, C++, etc.).

----

En el programa no tiene caso pedir el numero de filas y columnas en la función main porque ese valor se ignora (lo primero que haces en la función "LlenarMatriz" es destruir ese valor sobrescribiendolo con otro).

El error se encuentra en esa función (me refiero a "LlenarMatriz"), cuando lees el numero de filas con esta linea:
fscanf(arch, "%i", c);
Falta utilizar el operador "dirección de" (el '&'), debería ser:
fscanf(arch, "%i", &c);

Un saludo