elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Ayuda con este programa en: 5 Diciembre 2014, 01:14 am
1: Tu código es una chapuza ilegible.

2: No deberías usar variables globales, y menos con nombres de *****.

3: Da la información del fallo en el texto, no en un comentario que he visto de pura casualidad. Y explica antes qué has hecho para intentar solucionarlo, etc.

4: Estás usando C: tv/v, siendo tv y v de tipo int, es una división entera y produce valores enteros. Tienes que hacer un casting a float de alguna de las dos variables (preferiblemente ambas) para realizar una división con decimales. Tal que así:

Gracias por la ayuda, en comparación a ti, no te contestaré con aires de grandeza ni nada. Solo diré gracias: Gracias, Bill Gates.
2  Programación / Programación C/C++ / Ayuda con este programa en: 4 Diciembre 2014, 16:01 pm
Hola, tengo el problema que la variable por me arroja cero siempre, les dejo el código, podría ser una tontería, pero estoy en semestrales y entre tanto no veo el problema.

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include<conio.h>
  5. float por,pg;
  6. int f,s,i,o,l,x,y,z,may,p,t,v,tv,sup[10],m,ng,mv1,mv2;
  7. void impr(int **dc);
  8. void cal(int **dc);
  9. void gana(int **dc);
  10. main()
  11. {
  12.    int **dc;
  13.  
  14.    printf("\n\tCuantos distritos son? ");
  15.    scanf("%d",&f);
  16.    printf("\n\tCuantos votantes son? ");
  17.    scanf("%d",&v);
  18.    printf("\n\tCuantos candidatos son? ");
  19.    scanf("%d",&s);
  20.    int sup[s];
  21.    char ca[s][50];
  22.    dc=(int **) malloc(f *sizeof(int *));
  23.    for(i=0;i<f;i++)
  24.       {
  25.                    *(dc+i)=(int *) malloc(s *sizeof(int));
  26.  
  27.       }
  28.       for(i=0;i<s;i++)
  29.       {
  30.                       printf("\n\tIngrese el nombre del candidato %d: ",i+1);
  31.                       scanf("%s",&ca[i]);
  32.       }
  33.  
  34.      for(l=0;l<s;l++)
  35.           {          
  36.                      printf("\n\n");
  37.                      for(o=0;o<f;o++)
  38.                         {
  39.                                      printf("\n\tCuantos votos tuvo el candidato %s en el distrito %d: ",*(ca+l),(o+1));
  40.                                      scanf("%d",(*(dc+o)+l));
  41.                         }
  42.  
  43.           }
  44.       clrscr();
  45.       printf("\n\n");
  46.       gotoxy(30,3);printf("Candidatos");
  47.      gotoxy(3,3);printf("Distrito");  
  48.       x=15;
  49.       for(i=0;i<s;i++)
  50.          {
  51.                    gotoxy(x,5);printf("%s",ca[i]);
  52.                    x=x+15;
  53.  
  54.          }
  55.       impr(dc);
  56.       cal(dc);
  57.       printf("\n\n\n\n");
  58.       printf("\tEl candidato mas votado es: %s con %d",ca[p],t);
  59.       gana(dc);
  60.       printf("\n\n\n\n");
  61.       printf("\tEl Candidato ganador es: %s",ca[m]);
  62.       printf("\n\n\n\n");
  63.       system("pause");
  64. }
  65. void impr(int **dc)
  66. {
  67.  
  68.     x=15;
  69.     y=7;
  70.     z=7;
  71.     for(o=0;o<f;o++)
  72.           {          
  73.                      printf("\n");
  74.                      gotoxy(5,z);printf("%d",o+1);
  75.                      z=z+2;
  76.                      for(l=0;l<s;l++)
  77.                         {  
  78.                                     gotoxy(x,y); printf("%d",*(*(dc+o)+l));
  79.                                     x=x+15;
  80.                         }
  81.                         y=y+2;
  82.                         x=15;
  83.            }
  84. }
  85. void cal(int **dc)
  86. {  
  87.     for(l=0;l<s;l++)
  88.                         {  
  89.                                     sup[l]=0;
  90.                         }
  91.     for(o=0;o<s;o++)
  92.           {    
  93.                      for(l=0;l<f;l++)
  94.                         {  
  95.                                     sup[o]+=(*(*(dc+l)+o));
  96.                         }
  97.                          tv+=sup[o];
  98.            }
  99.     gotoxy(3,z);printf("Total");
  100.     for(i=0;i<s;i++)
  101.            {  
  102.                gotoxy(x,y);printf("%d",sup[i]);
  103.                x=x+15;
  104.            }
  105.     may=sup[0]; p=0;
  106.     for(i=1;i<s;i++)
  107.            {  
  108.                if(sup[i]>may)
  109.                {
  110.                   may=sup[i];
  111.                   p=i;
  112.                }
  113.            }
  114.   t=sup[p];
  115.   //printf("%d %d ",tv,v);
  116.   por=(tv/v)*100; //aquí esta el problema
  117.   printf("\n\n\n\n\tEl porcentaje de las personas que votaron: %.2f %",por);
  118.  
  119. }
  120. void gana(int **dc)
  121. {
  122.     for(i=0;i<f;i++)
  123.     {
  124.             pg=(sup[i]/tv)*100;
  125.             if(pg>50)
  126.             {
  127.                       m=i;
  128.                       ng=1;
  129.             }
  130.     }
  131.     if(ng==0)
  132.     {   may=sup[0];
  133.         mv1=0;
  134.         for(l=1;l<f;l++)
  135.         {
  136.              if(sup[l]>may)
  137.              {
  138.                  may=sup[l];
  139.                  mv1=l;
  140.              }
  141.          }        
  142.     }
  143. }
3  Programación / Programación C/C++ / Re: Programa de arreglo de estructuras en C en: 5 Octubre 2014, 22:02 pm
Estas utilizando mal el scanf..

tenes una variable entera i ..
int i
y usas de la siguiente forma el scanf..
scanf("%d", p); , el segundo parámetro de scanf es la dirección de memoria .
prueba así
scanf("%d",&p);

Modifico : perdón, una variable entera p. XD
Muchisímas gracias, de tanto codigo a veces uno se le olvidan cosas. De verdad gracias  ;D
4  Programación / Programación C/C++ / Programa de arreglo de estructuras en C en: 5 Octubre 2014, 18:23 pm
Buenos días, tengo este programa de estructuras con arreglos en C hecho en dev-c++. No me salen errores, pero al ejecutarlo no corre después de un punto y se cierra:
#include <stdio.h>
#include <string.h>
#include<conio.h>
struct fecha
{
       int dia, mes, anyo;
};
typedef struct
{
       char nombre[30], sexo[5];
       fecha nacimiento;
       float sueldo;
      
}empleados;
int i,p,d,m,a;
float may, men;
char nbr[30], sx[5];
void laf ();
main()
{
      printf("Cuantos empleados son? ");
      scanf("%d", p);
      empleados n[p];
      
    
    for(i=1;i<=p;i++)
      {
           printf("\nEcriba el nombre del empleado %d :",i);
           scanf("%s",&n.nombre);
           printf("\nEscriba su fecha de nacimiento:");
           printf("\nDia: ");
           scanf("%d",&n.nacimiento.dia);
           printf("\nMes: ");
           scanf("%d",&n.nacimiento.mes);
           printf("\nAnyo: ");
           scanf("%d",&n.nacimiento.anyo);
           printf("\nEscriba su sexo (f/m): ");
           scanf("%s",&n.sexo);
           printf("\nEscriba su sueldo: ");
           scanf("%f",&n.sueldo);
      }
 laf ();
 getch();
}
void  laf ()
{    empleados n[p];
     may=n[1].sueldo;
     for(i=1;i<=p;i++)
     {
          if(n.sueldo>may)
            {
                             may=n.sueldo;
                             strcpy(nbr,n.nombre);
                             d=n.nacimiento.dia;
                             m=n.nacimiento.mes;
                             a=n.nacimiento.anyo;
                             strcpy(sx,n.sexo);
            }
     }
     printf("\nEmpleado con mayor sueldo:\n\n ");
     printf("\nNombre: %s ",nbr);
     printf("\nFecha de nacimiento: ");
     printf("\nDia: %d ",d);
     printf("\nMes: %d ",m);
     printf("\nAnyo: %d ",a);
     printf("\nSexo: %s",sx);
     printf("\nSueldo: %f",may);
    
    
     men=n[1].sueldo;
     for(i=1;i<=p;i++)
     {
          if(n.sueldo<men)
            {
                             men=n.sueldo;
                             strcpy(nbr,n.nombre);
                             d=n.nacimiento.dia;
                             m=n.nacimiento.mes;
                             a=n.nacimiento.anyo;
                             strcpy(sx,n.sexo);
            }
     }
      printf("\nEmpleado con menor sueldo:\n\n ");
     printf("\nNombre: %s ",nbr);
     printf("\nFecha de nacimiento: ");
     printf("\nDia: %d ",d);
     printf("\nMes: %d ",m);
     printf("\nAnyo: %d ",a);
     printf("\nSexo: %s",sx);
}
El problema está en que se pare después de ingresar la cantidad de empleados.
Agradecería cualquier sugerencia...
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines