Autor Tema: Ha detectado un problema y debe cerrarse.  (Leído 3513 veces)

Desconectado DaDa

  • Newbie
  • *
  • Mensajes: 2
Ha detectado un problema y debe cerrarse.
« en: 06 de Septiembre de 2005, 02:39:56 pm »
Saludos, acabo de iniciarme en esto de la programación y todavía no he empezado y ya tengo el primer problema, al grano.

He compilado un programa de un manual, la compilación y creación del ejecutable ha sido correcta y no me ha dado ningún error, utilizo un programa llamado Dev-C++ ver 4.9.9.2

El problema viene cuando ejecuto el programa, el sistema se queda un instante parado y me sale la ventanita con el error puesto en el asusto.

El sitema operativo es Windows XP, y el programa en cuestión es este:

#include <stdio.h>
#include <math.h>

int main(void)
{
  int a, b, i;
  float s;
 
  /* Pedir límites inferior y superior */
  printf ("Límite inferior:");
  scanf ("%d , &a");
  while (a < 0) {
        printf ("No puede ser negativo\n");
        printf ("Límite inferior:");
        scanf ("%d , &a");
  }
 
  printf ("Límite superior:");
  scanf ("%d , &h");
  while (b < a) {
        printf ("No puede ser menor que %d\n" , a);
        printf ("Límite superior:");
        scanf ("%d , &h");
   }
   
   /* Calcular sumatorio de la raíz cuadrada de i para i entre a y b */
   s = 0.0;
   for (i = a; i <= b; i++) {
       s += sqrt(i);
   }
   
   /* Mostrar resultados */  
   printf ("Sumatorio de raíces ");
   printf ("de %d a %d: %f\n" , a, b, s);
   
   return 0;
}


Puede decirme alguien qué es lo que hago mal?????

Muchas gracias

Desconectado jirho

  • Member
  • ***
  • Mensajes: 303
Re: Ha detectado un problema y debe cerrarse.
« Respuesta #1 en: 06 de Septiembre de 2005, 05:14:04 pm »
...hola, no te preocupes esto sucede...pondre en negrilla lo que puede estar mal...

#include <stdio.h>
#include <math.h>

int main(void)
{
int a, b, i;
float s;

/* Pedir límites inferior y superior */
printf ("Límite inferior:");
scanf ("%d, &a"); //scanf ("%d", &a); las comillaswhile (a < 0) {
printf ("No puede ser negativo\n");
printf ("Límite inferior:");
scanf ("%d, &a"); //scanf ("%d", &a); las comillas
}

printf ("Límite superior:");
scanf ("%d , &h");//scanf ("%d", &h); las comillas
while (b < a) { //
printf ("No puede ser menor que %d\n" , a);
printf ("Límite superior:");
scanf ("%d , &h");//scanf ("%d", &h); las comillas , aqui deberia salirte error al compilar, no esta definida h, creo que aqui deberia ser b
}

/* Calcular sumatorio de la raíz cuadrada de i para i entre a y b */
s = 0.0;
for (i = a; i <= b; i++) { //noas leido b
s += sqrt(i);
}

/* Mostrar resultados */
printf ("Sumatorio de raíces ");
printf ("de %d a %d: %f\n" , a, b, s);

return 0;
}


...cre que esos pueden ser los errores, normalmente, cuando haces una operacion sobre una variable y esta no esta inicializada, puede generarte errores de memoria del sistema, para esto puedes inicializar todas las variables al momento de declararlas:
int a=0, b=0;
float s=0.0;


... :wink: ...
[root@local_host jirho]#Conecting to underground zone...:superman:

http://www.hackeando.com/gifs/logomini.gif

Desconectado DaDa

  • Newbie
  • *
  • Mensajes: 2
Ha detectado un problema y debe cerrarse.
« Respuesta #2 en: 06 de Septiembre de 2005, 05:24:31 pm »
Así es, eran las dichosas comillas.

Un saludo y muchísimas gracias por tu ayuda.

 

Aviso Legal | Política de Privacidad | Política de Cookies

el contenido de la web se rige bajo licencia
Creative Commons License