no puedo correr el programa no encuentro el error

Iniciado por cch55555, 1 Junio 2017, 06:20 AM

0 Miembros y 2 Visitantes están viendo este tema.

cch55555

realice un programa pero no puedo correr el programa no encuentro el error,el programa se supone que te da la opcion de investigar ramas de biotecnologia y realiza un conteo de los accesos que se tienen a estas paginas, alguien podria decirme el error por favor:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
main(){
   int op;
   int mayor=0,menor=0;
   int az=0,ve=0,ro=0,bl=0,ge=0;
   int ts=0,i,
   int seleccion[5];
   char r='s';
   do{
       system("color 3f");
       system("CLS");
       printf("\n\n\n Biotecnologia\n\n");
          printf("\     1.- Biotecnologia azul\n\n");
          printf("\     2.- Biotecnologia verde\n\n");
          printf("\     3.- Biotecnologia roja\n\n");
          printf("\     4.- Biotecnologia blanca\n\n");
          printf("\     5.- Biotecnologia general\n\n");
       printf("Selecciona Area de interes -->");
       scanf("%d",op);
       switch(op){
    case 1:
       ShellExecute(0,"open","https://ec.europa.eu/maritimeaffairs/policy/biotechnology_es",0,0,1);
       az++;
       break;
    case 2:break;
       ShellExecute(0,"open","http://www.ecured.cu/Biotecnolog%C3%ADa_verde_o_agroalimentaria",0,0,1);
       ve++;
       break;
    case 3:break;
       ShellExecute(0,"open","https://biotechspain.com/es/tema.cfm?iid=colores_biotecnologia",0,0,1);
       ro++;
       break;
    case 4:break;
       ShellExecute(0,"http://www.argenbio.org/index.php?action=novedades&note=199",0,0,1);
       bl++;
       break;
    case 5:
       ShellExecute(0,"http://www.biopositivizate.com/es/que_es_la_biotecnologia.html",0,0,1);
       ge++;
       break;
       default:
           break;
       }
       seleccion[0]=az;
       seleccion[1]=ve;
       seleccion[2]=ro;
       seleccion[3]=bl;
       seleccion[4]=ge;
       for (i=0;i<=4;i++){
           ts=ts+seleccion[i];
       }
       printf("\n\nBiotecnologia azul --> %d",seleccion[0]);
       printf("\n\nBiotecnologia verde --> %d",seleccion[1]);
       printf("\n\nBiotecnologia roja --> %d",seleccion[2]);
       printf("\n\nBiotecnologia blanca --> %d",seleccion[3]);
       printf("\n\nBiotecnologia general --> %d",seleccion[4]);
       printf("\n\nTotal de selecciones --> %d",ts);
       printf("Continuar [s/n]");
       scanf("%s",&r);
       if (az>mayor){
      mayor=az;
   }
   else if (az<menor)
   {
      menor=az;
   }
   if (ve>mayor){
      mayor=ve;
   }
   else if (ve<menor)
   {
      menor=ve;
   }

   if (ro>mayor){
      mayor=ro;
   }
   else if (ro<menor)
   {
      menor=ro;
   }
   if (bl>mayor){
      mayor=bl;
   }
   else if (bl<menor)
   {
      menor=bl;
   }
   if (ge>mayor){
      mayor=ge;
   }
   else if (ge<menor)
   {
      menor=ge;
   }
   printf("El mayor es:%d\n",mayor);
   printf("El menor es:%d\n",menor);
   printf("Continuar [s/n]");
   scanf("%s",&r);
   }while(r=='s');
}



· Los códigos deben ir en etiquetas GeSHi
· Los títulos deben ser descriptivos a la temática
>aquí las reglas del foro
-Engel Lex

engel lex

primero que nada, main debe ser de tipo int y retornar 0 por defecto

tienes un buen lote de errores... tienes que aprender a leer los errores del compilador

linea 8, falta punto y coma
linea 15 a 19... que es esa barra invertida al principio del string?
linea 21, op deberia pasar como referencia (&)

y revisar tu logica...

linea 27, 31 y 35... que son esos break? eso evita que se "entre" al caso
linea 60 preguntas si se continua, lo repites en 101
linea 91 el menor siempre será 0, ya que empiezas en 0 y nunca restas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

cch55555

#2
ok si no te entendi mal este seria el programa con las correcciones:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
main(){
   int op;
   int mayor=0,menor=0;
   int az=0,ve=0,ro=0,bl=0,ge=0;
   int ts=0,i;
   int seleccion[5];
   char r='s';
   do{
       system("color 3f");
       system("CLS");
       printf("\n\n\n Biotecnologia\n\n");
       printf("\n1.- Biotecnologia azul\n\n");
       printf("\n2.- Biotecnologia verde\n\n");
       printf("\n3.- Biotecnologia roja\n\n");
       printf("\n4.- Biotecnologia blanca\n\n");
       printf("\n5.- Biotecnologia general\n\n");
       printf("Selecciona Area de interes -->");
       scanf("&d",op);
       switch(op){
    case 1:
       ShellExecute(0,"open","https://ec.europa.eu/maritimeaffairs/policy/biotechnology_es",0,0,1);
       az++;
       break;
    case 2:
       ShellExecute(0,"open","http://www.ecured.cu/Biotecnolog%C3%ADa_verde_o_agroalimentaria",0,0,1);
       ve++;
       break;
    case 3:
       ShellExecute(0,"open","https://biotechspain.com/es/tema.cfm?iid=colores_biotecnologia",0,0,1);
       ro++;
       break;
    case 4:
       ShellExecute(0,"http://www.argenbio.org/index.php?action=novedades&note=199",0,0,1);
       bl++;
       break;
    case 5:
       ShellExecute(0,"http://www.biopositivizate.com/es/que_es_la_biotecnologia.html",0,0,1);
       ge++;
       break;
       default:
           break;
       }
       seleccion[0]=az;
       seleccion[1]=ve;
       seleccion[2]=ro;
       seleccion[3]=bl;
       seleccion[4]=ge;
       for (i=0;i<=4;i++){
           ts=ts+seleccion[i];
       }
       printf("\n\nBiotecnologia azul --> %d",seleccion[0]);
       printf("\n\nBiotecnologia verde --> %d",seleccion[1]);
       printf("\n\nBiotecnologia roja --> %d",seleccion[2]);
       printf("\n\nBiotecnologia blanca --> %d",seleccion[3]);
       printf("\n\nBiotecnologia general --> %d",seleccion[4]);
       printf("\n\nTotal de selecciones --> %d",ts);
       printf("Continuar [s/n]");
       scanf("%s",&r);
       if (az>mayor){
      mayor=az;
   }
   else if (az<menor)
   {
   menor=az;
   }
   if (ve>mayor){
   mayor=ve;
   }
   else if (ve<menor)
   {
   menor=ve;
   }

   if (ro>mayor){
   mayor=ro;
   }
   else if (ro<menor)
   {
   menor=ro;
   }
   if (bl>mayor){
   mayor=bl;
   }
   else if (bl<menor)
   {
   menor=bl;
   }
   if (ge>mayor){
   mayor=ge;
   }
   else if (ge<menor)
   {
   menor=ge;
   }
   printf("El mayor es:%d\n",mayor);
   printf("El menor es:%d\n",menor);
   }while(r=='s');
}



· Los códigos deben ir en etiquetas GeSHi (segundo aviso)
>aquí las reglas del foro
-Engel Lex

engel lex

casi...

Recuerda usar las etiquetas de codigo (GeSHi) están arriba a la derecha cuando editas el contenido

aun tienes el problema de la linea 21, op no pasa como referencia, debe ser &op (toma como ejemplo la linea 61)
el menor va a seguir siendo siempre 0... iguala menor a az antes de los if para que tenga un valor comparado real
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

cch55555

la linea 61 es donde no comprendi

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
main(){
    int op;
    int mayor=0,menor=0;
    int az=0,ve=0,ro=0,bl=0,ge=0;
    int ts=0,i;
    int seleccion[5];
    char r='s';
    do{
        system("color 3f");
        system("CLS");
        printf("\n\n\n Biotecnologia\n\n");
        printf("\n1.- Biotecnologia azul\n\n");
        printf("\n2.- Biotecnologia verde\n\n");
        printf("\n3.- Biotecnologia roja\n\n");
        printf("\n4.- Biotecnologia blanca\n\n");
        printf("\n5.- Biotecnologia general\n\n");
        printf("Selecciona Area de interes -->");
        scanf("%d",&op);
        switch(op){
     case 1:
        ShellExecute(0,"open","https://ec.europa.eu/maritimeaffairs/policy/biotechnology_es",0,0,1);
        az++;
        break;
     case 2:
        ShellExecute(0,"open","http://www.ecured.cu/Biotecnolog%C3%ADa_verde_o_agroalimentaria",0,0,1);
        ve++;
        break;
     case 3:
        ShellExecute(0,"open","https://biotechspain.com/es/tema.cfm?iid=colores_biotecnologia",0,0,1);
        ro++;
        break;
     case 4:
        ShellExecute(0,"http://www.argenbio.org/index.php?action=novedades&note=199",0,0,1);
        bl++;
        break;
     case 5:
        ShellExecute(0,"http://www.biopositivizate.com/es/que_es_la_biotecnologia.html",0,0,1);
        ge++;
        break;
        default:
            break;
        }
        seleccion[0]=az;
        seleccion[1]=ve;
        seleccion[2]=ro;
        seleccion[3]=bl;
        seleccion[4]=ge;
        for (i=0;i<=4;i++){
            ts=ts+seleccion[i];
        }
        printf("\n\nBiotecnologia azul --> %d",seleccion[0]);
        printf("\n\nBiotecnologia verde --> %d",seleccion[1]);
        printf("\n\nBiotecnologia roja --> %d",seleccion[2]);
        printf("\n\nBiotecnologia blanca --> %d",seleccion[3]);
        printf("\n\nBiotecnologia general --> %d",seleccion[4]);
        printf("\n\nTotal de selecciones --> %d",ts);
        printf("Continuar [s/n]");
        scanf("%s",&r);
        if (az>mayor){
       mayor=az;
    }
    else if (az<menor)
    {
    menor=az;
    }
    if (ve>mayor){
    mayor=ve;
    }
    else if (ve<menor)
    {
    menor=ve;
    }

    if (ro>mayor){
    mayor=ro;
    }
    else if (ro<menor)
    {
    menor=ro;
    }
    if (bl>mayor){
    mayor=bl;
    }
    else if (bl<menor)
    {
    menor=bl;
    }
    if (ge>mayor){
    mayor=ge;
    }
    else if (ge<menor)
    {
    menor=ge;
    }
    printf("El mayor es:%d\n",mayor);
    printf("El menor es:%d\n",menor);
    }while(r=='s');
}

engel lex

lo de la linea 61 era que tomaras como ejemplo, pero ya...

ahora resuelve llo del menor... menor no puede ser 0, porque nada va a ser menor que 0
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

cch55555

bien entonces al menor no se debe dar valor? solo dejarlo en variable?

engel lex

Citarbien entonces al menor no se debe dar valor? solo dejarlo en variable?

si haces eso hay 2 opciones, o contrandrá basura que la ram tenga alojada allí (se interpretrará como un numero al azar) o será 0 (algunos compiladores dan valor 0 a las variables)

ya te dije lo que tienes que hacer

Citarel menor va a seguir siendo siempre 0... iguala menor a az antes de los if para que tenga un valor comparado real
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

cch55555

cierto cierto, pues muchas gracias por tu tiempo de verdad te lo agradezco

engel lex

tip.... usualmente con mayor harías lo mismo, pero como en este caso nadie es menor que 0, 0 es el menor numero que mayor puede adquirir
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.