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

#1
Me habia quedado con la duda pero la solucion de do-while funciona perfectamente, muchas gracias a todos!!  :)
#2
Resulta que tengo un problema, tengo una variable entera, al introducir un numero que sea por ejemplo, .1, el programa, al momento de ejecutar se cicla y no hay manera de pararlo(solo con Ctrl + c). Eh intentado un montón de cosas pero ninguna funciona. :huh:
No eh podido implementar una excepción, intente con sentencias if, bucles while, del tipo "si n no es mayor que cero, no ejecutes", pero lo único que consigo es lo que esta en la screenshot de abajo. :-(
Aqui esta el pedazo de código en donde quiero implementar el "filtro":

int main(){
/* PEDIR ELEMENTOS */
  int n=0;
  printf("numero de elementos para el vector:\n");
  scanf("%d", &n);
}



Horriblemente se cicla...

Gracias de antemano. :)

#3
Programación C/C++ / Re: Correr Programa c
5 Agosto 2011, 06:56 AM
No encuentro por que la falla, pero lo seguire pensando (esta es una respuesta rapida)  :-X
Te recomiendo que metas todo esto en una función para que después la llames y asi sea más fácil de leer tu código   :-*
Código (cpp) [Seleccionar]

//TODO ESTO EN UNA FUNCION
           printf("Burbuja \n");
                    #define TAM 10000
int a[TAM], temp, i, j;

clrscr();

randomize(); //Inicializa el generador de numeros aleatorios

printf ("Llenando arreglo con números aleatorios\n");

for (i=0; i< TAM; i++)
a[i]=random(10000);

//Implementacion de Ordenamiento por burbuja de mayor a menor

for (j=1; j <= TAM; j++)

for (i=0; i< TAM-1; i++)

if (a[i] < a[i+1]){

temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}

printf ("\nArreglo ordenado\n");

for (i=0; i< TAM; i++)
printf ("a[%d] = %d\n", i, a[i]);

                    break;


#4
Programación C/C++ / Re: Correr Programa c
5 Agosto 2011, 04:08 AM
Me imagino que lo que tratas de hacer es una vez que, digamos, selecciones la opción burbuja, se ejecute todo el procedimiento.
Para llamar a una función seria mas o menos esto:

case '1':
                    printf("Burbuja \n"); //aqui solo imprime Burbuja
                    metodo_burbuja(); // Realmente aqui se llama a la funcion (supongo que no necesita argumentos)
                    break; //despues de cada case debe poner un break.


Espero haberte ayudado ;D

Cita de: enrmarc en  4 Agosto 2011, 22:35 PM
¿Tienes un programa 'Burbuja' (el .exe o a.out) o un método Burbuja() ?
Si es el primer caso échale un vistazo a execv y en el segundo caso simplemente llama al método.
En el caso de que necesites que se ejecute otro programa externo investiga sobre la librería execv como dice enrmarc (no la conozco)
#5
Woah! :-[
Ya comprendí lo del  bucle for, i ya estaba en 5, por eso saltaba hacia imprime_i() :P, sobre lo de la excepción que quería hacer, voy a investigar e implementar lo que dicen.
Muchas gracias a todos  ;D
#6
Hola! (siento tener que publicar esto, pero por más que le di vueltas, no encuentro una respuesta)
Estoy practicando los bucles for y me surgió un "problema" que me saco de onda:
No encuentro como explicar mi "problema" sin antes mostrar la salida...

Salida:

i vale 0
i vale 1
i vale 2
i vale 3
i vale 4
imprime_i() INICIALIZADA
i vale 5


y aqui el codigo:
#include <stdio.h>
void imprime_i(int x);

int main(){
 int i, a = 5;
 for(i=0; i < a; i++){
   printf("i vale %d\n", i);
 }
 imprime_i(i);
 return 0;
}

void imprime_i(int x){

 printf("imprime_i() INICIALIZADA\n\
i vale %d\n", x);
}
   



¿Por que se imprime 0 en el primer ciclo si se supone que se incrementa 1 y después se imprime? :-(
¿No se supone que tendría que valer 4 al final? :huh:

Aprovechando este post tengo una pregunta más:
Hice un programa que pide un valor numérico, pero al introducir una letra, se vuelve a repetir (como si fuera un bucle infinito) ¿como puedo hacer una excepción para controlar eso?

Gracias de antemano (: