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

#11
Cita de: Peregring-lk en  2 Junio 2015, 11:46 AM¿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í:
if (scanf("%2u/%2u/%4u%1[\n]", &dia, &mes, &anno, &truco) == 4){
   puts("OK");
}else {
   puts("Entrada no valida");
}


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
Cita de: Jonathanxd en 28 Mayo 2015, 05:26 AMNo 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:
char* pidetexto()
{
char *q,text[50];
printf("\ningrese el texto: ");
scanf("%s", &text);
q=text;
return q;
}

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:
char *pidetexto(void)
{
   char *q;
   
   if ((q = malloc(50)) != NULL){
      puts("Ingrese el texto:");
      scanf("%s", q); /* Falta validar el resultado de scanf */
   }
   
   return q;
}

Y después del uso del bloque hay que liberar la memoria mediante la función free.

Un saludo
#13
No utilizo ese IDE pero tal vez te sea de utilidad:
Eclipse Color Themes
Visual Studio 11 Dark

Un saludo
#14
Cita de: shaelb en 27 Mayo 2015, 12:05 PMhice 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 (cpp) [Seleccionar]
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 (cpp) [Seleccionar]
matriz[inicialf][inicialc] = 1;

* La asignación en el mentado bucle esta mal:
Código (cpp) [Seleccionar]
for (int i=1 ; i<=filas; i++){
   for (int j=1 ; j<=columnas; j++){
      if (i==inicialf && j==inicialc){
         matriz[inicialf][inicialc]=1; /* 1 */
      }
     
      matriz[i][j]=0; /* 2 */
   }
}

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 (cpp) [Seleccionar]
for (int i=1 ; i<=filas; i++){
   for (int j=1 ; j<=columnas; j++){
      if (i==inicialf && j==inicialc){
         matriz[inicialf][inicialc]=1;
      }else {
         matriz[i][j]=0;
      }
   }
}


* 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 (cpp) [Seleccionar]
cout<<"\t", matriz[i][j];
Cuando debería ser:
Código (cpp) [Seleccionar]
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 (cpp) [Seleccionar]
for (int i = 0; i != filas; ++i){
   for (int j = 0; j != columnas; ++j)
      cout << "\t" << matriz[i][j];
   
   cout << std::endl; // Falta incluir <iostream>
}


Un saludo
#15
Cita de: LixusKH en 24 Mayo 2015, 22:17 PMestoy 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:
m = rand() % 1 + 1;
l = rand() % 1 + 1;
ll = rand() % 1 + 1;
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
Cita de: fede196 en 23 Mayo 2015, 00:54 AMEste 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 (cpp) [Seleccionar]
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 (cpp) [Seleccionar]
printf ("El dinero recaudado por la zona %d es: %d\n", i + 1, A3[i].acum_imp[0]);

Un saludo
#17
Cita de: Chopeto en 22 Mayo 2015, 21:09 PMComo 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:
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>:
#include <stdlib.h>

/* ... */

system("pause");


Un saludo
#18
Cita de: neron991 en 21 Mayo 2015, 00:18 AMtengo 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:

[...]

#include <stdio.h>
int par (int numero);
float prom (float n1, float n2, float n3);

/* ... */

prom (n1,n2,n3);

/* ... */

float prom (float n1,float n2, float n3)
{
   float resultado;
   resultado= (n1+n2+n3)/3;
   printf ("\nEL promedio es: %f\n",resultado);
}


dice:

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:
#include <stdio.h>
int par (int numero);
void prom (float n1, float n2, float n3);

/* ... */

prom (n1,n2,n3);

/* ... */

void prom (float n1,float n2, float n3)
{
   float resultado;
   resultado= (n1+n2+n3)/3;
   printf ("\nEL promedio es: %f\n",resultado);
}


Un saludo
#19
Programación C/C++ / Re: Variable Corrupta
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 (cpp) [Seleccionar]
typedef float mat[8]; // array de 8 elementos, indices validos 0 .. 7

Un saludo
#20
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