Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: cch55555 en 1 Junio 2017, 06:20 am



Título: no puedo correr el programa no encuentro el error
Publicado por: cch55555 en 1 Junio 2017, 06:20 am
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:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. main(){
  5.    int op;
  6.    int mayor=0,menor=0;
  7.    int az=0,ve=0,ro=0,bl=0,ge=0;
  8.    int ts=0,i,
  9.    int seleccion[5];
  10.    char r='s';
  11.    do{
  12.        system("color 3f");
  13.        system("CLS");
  14.        printf("\n\n\n Biotecnologia\n\n");
  15.           printf("\     1.- Biotecnologia azul\n\n");
  16.           printf("\     2.- Biotecnologia verde\n\n");
  17.           printf("\     3.- Biotecnologia roja\n\n");
  18.           printf("\     4.- Biotecnologia blanca\n\n");
  19.           printf("\     5.- Biotecnologia general\n\n");
  20.        printf("Selecciona Area de interes -->");
  21.        scanf("%d",op);
  22.        switch(op){
  23.     case 1:
  24.        ShellExecute(0,"open","https://ec.europa.eu/maritimeaffairs/policy/biotechnology_es",0,0,1);
  25.        az++;
  26.        break;
  27.     case 2:break;
  28.        ShellExecute(0,"open","http://www.ecured.cu/Biotecnolog%C3%ADa_verde_o_agroalimentaria",0,0,1);
  29.        ve++;
  30.        break;
  31.     case 3:break;
  32.        ShellExecute(0,"open","https://biotechspain.com/es/tema.cfm?iid=colores_biotecnologia",0,0,1);
  33.        ro++;
  34.        break;
  35.     case 4:break;
  36.        ShellExecute(0,"http://www.argenbio.org/index.php?action=novedades&note=199",0,0,1);
  37.        bl++;
  38.        break;
  39.     case 5:
  40.        ShellExecute(0,"http://www.biopositivizate.com/es/que_es_la_biotecnologia.html",0,0,1);
  41.        ge++;
  42.        break;
  43.        default:
  44.            break;
  45.        }
  46.        seleccion[0]=az;
  47.        seleccion[1]=ve;
  48.        seleccion[2]=ro;
  49.        seleccion[3]=bl;
  50.        seleccion[4]=ge;
  51.        for (i=0;i<=4;i++){
  52.            ts=ts+seleccion[i];
  53.        }
  54.        printf("\n\nBiotecnologia azul --> %d",seleccion[0]);
  55.        printf("\n\nBiotecnologia verde --> %d",seleccion[1]);
  56.        printf("\n\nBiotecnologia roja --> %d",seleccion[2]);
  57.        printf("\n\nBiotecnologia blanca --> %d",seleccion[3]);
  58.        printf("\n\nBiotecnologia general --> %d",seleccion[4]);
  59.        printf("\n\nTotal de selecciones --> %d",ts);
  60.        printf("Continuar [s/n]");
  61.        scanf("%s",&r);
  62.        if (az>mayor){
  63.       mayor=az;
  64.    }
  65.    else if (az<menor)
  66.    {
  67.       menor=az;
  68.    }
  69.    if (ve>mayor){
  70.       mayor=ve;
  71.    }
  72.    else if (ve<menor)
  73.    {
  74.       menor=ve;
  75.    }
  76.  
  77.    if (ro>mayor){
  78.       mayor=ro;
  79.    }
  80.    else if (ro<menor)
  81.    {
  82.       menor=ro;
  83.    }
  84.    if (bl>mayor){
  85.       mayor=bl;
  86.    }
  87.    else if (bl<menor)
  88.    {
  89.       menor=bl;
  90.    }
  91.    if (ge>mayor){
  92.       mayor=ge;
  93.    }
  94.    else if (ge<menor)
  95.    {
  96.       menor=ge;
  97.    }
  98.    printf("El mayor es:%d\n",mayor);
  99.    printf("El menor es:%d\n",menor);
  100.    printf("Continuar [s/n]");
  101.    scanf("%s",&r);
  102.    }while(r=='s');
  103. }


· Los códigos deben ir en etiquetas GeSHi
· Los títulos deben ser descriptivos a la temática
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: no puedo correr el programa no encuentro el error
Publicado por: engel lex en 1 Junio 2017, 06:44 am
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


Título: Re: no puedo correr el programa no encuentro el error
Publicado por: cch55555 en 1 Junio 2017, 06:59 am
ok si no te entendi mal este seria el programa con las correcciones:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. main(){
  5.    int op;
  6.    int mayor=0,menor=0;
  7.    int az=0,ve=0,ro=0,bl=0,ge=0;
  8.    int ts=0,i;
  9.    int seleccion[5];
  10.    char r='s';
  11.    do{
  12.        system("color 3f");
  13.        system("CLS");
  14.        printf("\n\n\n Biotecnologia\n\n");
  15.        printf("\n1.- Biotecnologia azul\n\n");
  16.        printf("\n2.- Biotecnologia verde\n\n");
  17.        printf("\n3.- Biotecnologia roja\n\n");
  18.        printf("\n4.- Biotecnologia blanca\n\n");
  19.        printf("\n5.- Biotecnologia general\n\n");
  20.        printf("Selecciona Area de interes -->");
  21.        scanf("&d",op);
  22.        switch(op){
  23.     case 1:
  24.        ShellExecute(0,"open","https://ec.europa.eu/maritimeaffairs/policy/biotechnology_es",0,0,1);
  25.        az++;
  26.        break;
  27.     case 2:
  28.        ShellExecute(0,"open","http://www.ecured.cu/Biotecnolog%C3%ADa_verde_o_agroalimentaria",0,0,1);
  29.        ve++;
  30.        break;
  31.     case 3:
  32.        ShellExecute(0,"open","https://biotechspain.com/es/tema.cfm?iid=colores_biotecnologia",0,0,1);
  33.        ro++;
  34.        break;
  35.     case 4:
  36.        ShellExecute(0,"http://www.argenbio.org/index.php?action=novedades&note=199",0,0,1);
  37.        bl++;
  38.        break;
  39.     case 5:
  40.        ShellExecute(0,"http://www.biopositivizate.com/es/que_es_la_biotecnologia.html",0,0,1);
  41.        ge++;
  42.        break;
  43.        default:
  44.            break;
  45.        }
  46.        seleccion[0]=az;
  47.        seleccion[1]=ve;
  48.        seleccion[2]=ro;
  49.        seleccion[3]=bl;
  50.        seleccion[4]=ge;
  51.        for (i=0;i<=4;i++){
  52.            ts=ts+seleccion[i];
  53.        }
  54.        printf("\n\nBiotecnologia azul --> %d",seleccion[0]);
  55.        printf("\n\nBiotecnologia verde --> %d",seleccion[1]);
  56.        printf("\n\nBiotecnologia roja --> %d",seleccion[2]);
  57.        printf("\n\nBiotecnologia blanca --> %d",seleccion[3]);
  58.        printf("\n\nBiotecnologia general --> %d",seleccion[4]);
  59.        printf("\n\nTotal de selecciones --> %d",ts);
  60.        printf("Continuar [s/n]");
  61.        scanf("%s",&r);
  62.        if (az>mayor){
  63.       mayor=az;
  64.    }
  65.    else if (az<menor)
  66.    {
  67.    menor=az;
  68.    }
  69.    if (ve>mayor){
  70.    mayor=ve;
  71.    }
  72.    else if (ve<menor)
  73.    {
  74.    menor=ve;
  75.    }
  76.  
  77.    if (ro>mayor){
  78.    mayor=ro;
  79.    }
  80.    else if (ro<menor)
  81.    {
  82.    menor=ro;
  83.    }
  84.    if (bl>mayor){
  85.    mayor=bl;
  86.    }
  87.    else if (bl<menor)
  88.    {
  89.    menor=bl;
  90.    }
  91.    if (ge>mayor){
  92.    mayor=ge;
  93.    }
  94.    else if (ge<menor)
  95.    {
  96.    menor=ge;
  97.    }
  98.    printf("El mayor es:%d\n",mayor);
  99.    printf("El menor es:%d\n",menor);
  100.    }while(r=='s');
  101. }
  102.  


· Los códigos deben ir en etiquetas GeSHi (segundo aviso)
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: no puedo correr el programa no encuentro el error
Publicado por: engel lex en 1 Junio 2017, 07:06 am
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


Título: Re: no puedo correr el programa no encuentro el error
Publicado por: cch55555 en 1 Junio 2017, 07:13 am
la linea 61 es donde no comprendi
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. main(){
  5.    int op;
  6.    int mayor=0,menor=0;
  7.    int az=0,ve=0,ro=0,bl=0,ge=0;
  8.    int ts=0,i;
  9.    int seleccion[5];
  10.    char r='s';
  11.    do{
  12.        system("color 3f");
  13.        system("CLS");
  14.        printf("\n\n\n Biotecnologia\n\n");
  15.        printf("\n1.- Biotecnologia azul\n\n");
  16.        printf("\n2.- Biotecnologia verde\n\n");
  17.        printf("\n3.- Biotecnologia roja\n\n");
  18.        printf("\n4.- Biotecnologia blanca\n\n");
  19.        printf("\n5.- Biotecnologia general\n\n");
  20.        printf("Selecciona Area de interes -->");
  21.        scanf("%d",&op);
  22.        switch(op){
  23.     case 1:
  24.        ShellExecute(0,"open","https://ec.europa.eu/maritimeaffairs/policy/biotechnology_es",0,0,1);
  25.        az++;
  26.        break;
  27.     case 2:
  28.        ShellExecute(0,"open","http://www.ecured.cu/Biotecnolog%C3%ADa_verde_o_agroalimentaria",0,0,1);
  29.        ve++;
  30.        break;
  31.     case 3:
  32.        ShellExecute(0,"open","https://biotechspain.com/es/tema.cfm?iid=colores_biotecnologia",0,0,1);
  33.        ro++;
  34.        break;
  35.     case 4:
  36.        ShellExecute(0,"http://www.argenbio.org/index.php?action=novedades&note=199",0,0,1);
  37.        bl++;
  38.        break;
  39.     case 5:
  40.        ShellExecute(0,"http://www.biopositivizate.com/es/que_es_la_biotecnologia.html",0,0,1);
  41.        ge++;
  42.        break;
  43.        default:
  44.            break;
  45.        }
  46.        seleccion[0]=az;
  47.        seleccion[1]=ve;
  48.        seleccion[2]=ro;
  49.        seleccion[3]=bl;
  50.        seleccion[4]=ge;
  51.        for (i=0;i<=4;i++){
  52.            ts=ts+seleccion[i];
  53.        }
  54.        printf("\n\nBiotecnologia azul --> %d",seleccion[0]);
  55.        printf("\n\nBiotecnologia verde --> %d",seleccion[1]);
  56.        printf("\n\nBiotecnologia roja --> %d",seleccion[2]);
  57.        printf("\n\nBiotecnologia blanca --> %d",seleccion[3]);
  58.        printf("\n\nBiotecnologia general --> %d",seleccion[4]);
  59.        printf("\n\nTotal de selecciones --> %d",ts);
  60.        printf("Continuar [s/n]");
  61.        scanf("%s",&r);
  62.        if (az>mayor){
  63.       mayor=az;
  64.    }
  65.    else if (az<menor)
  66.    {
  67.    menor=az;
  68.    }
  69.    if (ve>mayor){
  70.    mayor=ve;
  71.    }
  72.    else if (ve<menor)
  73.    {
  74.    menor=ve;
  75.    }
  76.  
  77.    if (ro>mayor){
  78.    mayor=ro;
  79.    }
  80.    else if (ro<menor)
  81.    {
  82.    menor=ro;
  83.    }
  84.    if (bl>mayor){
  85.    mayor=bl;
  86.    }
  87.    else if (bl<menor)
  88.    {
  89.    menor=bl;
  90.    }
  91.    if (ge>mayor){
  92.    mayor=ge;
  93.    }
  94.    else if (ge<menor)
  95.    {
  96.    menor=ge;
  97.    }
  98.    printf("El mayor es:%d\n",mayor);
  99.    printf("El menor es:%d\n",menor);
  100.    }while(r=='s');
  101. }
  102.  


Título: Re: no puedo correr el programa no encuentro el error
Publicado por: engel lex en 1 Junio 2017, 07:19 am
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


Título: Re: no puedo correr el programa no encuentro el error
Publicado por: cch55555 en 1 Junio 2017, 07:25 am
bien entonces al menor no se debe dar valor? solo dejarlo en variable?


Título: Re: no puedo correr el programa no encuentro el error
Publicado por: engel lex en 1 Junio 2017, 07:30 am
Citar
bien 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

Citar
el menor va a seguir siendo siempre 0... iguala menor a az antes de los if para que tenga un valor comparado real


Título: Re: no puedo correr el programa no encuentro el error
Publicado por: cch55555 en 1 Junio 2017, 07:35 am
cierto cierto, pues muchas gracias por tu tiempo de verdad te lo agradezco


Título: Re: no puedo correr el programa no encuentro el error
Publicado por: engel lex en 1 Junio 2017, 07:38 am
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


Título: Re: no puedo correr el programa no encuentro el error
Publicado por: JimP en 1 Junio 2017, 17:04 pm
El contador de selecciones no da bien el resultado, en lugar de ir mostrando 1,2,3,... muestra 1,3,6,... y así. Para arreglarlo el ts=0 se pondría dentro del do while, antes del for de la línea 51.
O en lugar del for de la línea 51 poner simplemente un ++t;
Adicionalmente en la líneas 36 y 40 faltan los "open".
Eso es los posibles errores adicionales que he encontrado.