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 (c) [Seleccionar]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
float por,pg;
int f,s,i,o,l,x,y,z,may,p,t,v,tv,sup[10],m,ng,mv1,mv2;
void impr(int **dc);
void cal(int **dc);
void gana(int **dc);
main()
{
int **dc;
printf("\n\tCuantos distritos son? ");
scanf("%d",&f);
printf("\n\tCuantos votantes son? ");
scanf("%d",&v);
printf("\n\tCuantos candidatos son? ");
scanf("%d",&s);
int sup[s];
char ca[s][50];
dc=(int **) malloc(f *sizeof(int *));
for(i=0;i<f;i++)
{
*(dc+i)=(int *) malloc(s *sizeof(int));
}
for(i=0;i<s;i++)
{
printf("\n\tIngrese el nombre del candidato %d: ",i+1);
scanf("%s",&ca[i]);
}
for(l=0;l<s;l++)
{
printf("\n\n");
for(o=0;o<f;o++)
{
printf("\n\tCuantos votos tuvo el candidato %s en el distrito %d: ",*(ca+l),(o+1));
scanf("%d",(*(dc+o)+l));
}
}
clrscr();
printf("\n\n");
gotoxy(30,3);printf("Candidatos");
gotoxy(3,3);printf("Distrito");
x=15;
for(i=0;i<s;i++)
{
gotoxy(x,5);printf("%s",ca[i]);
x=x+15;
}
impr(dc);
cal(dc);
printf("\n\n\n\n");
printf("\tEl candidato mas votado es: %s con %d",ca[p],t);
gana(dc);
printf("\n\n\n\n");
printf("\tEl Candidato ganador es: %s",ca[m]);
printf("\n\n\n\n");
system("pause");
}
void impr(int **dc)
{
x=15;
y=7;
z=7;
for(o=0;o<f;o++)
{
printf("\n");
gotoxy(5,z);printf("%d",o+1);
z=z+2;
for(l=0;l<s;l++)
{
gotoxy(x,y); printf("%d",*(*(dc+o)+l));
x=x+15;
}
y=y+2;
x=15;
}
}
void cal(int **dc)
{
for(l=0;l<s;l++)
{
sup[l]=0;
}
for(o=0;o<s;o++)
{
for(l=0;l<f;l++)
{
sup[o]+=(*(*(dc+l)+o));
}
tv+=sup[o];
}
gotoxy(3,z);printf("Total");
for(i=0;i<s;i++)
{
gotoxy(x,y);printf("%d",sup[i]);
x=x+15;
}
may=sup[0]; p=0;
for(i=1;i<s;i++)
{
if(sup[i]>may)
{
may=sup[i];
p=i;
}
}
t=sup[p];
//printf("%d %d ",tv,v);
por=(tv/v)*100; //aquí esta el problema
printf("\n\n\n\n\tEl porcentaje de las personas que votaron: %.2f %",por);
}
void gana(int **dc)
{
for(i=0;i<f;i++)
{
pg=(sup[i]/tv)*100;
if(pg>50)
{
m=i;
ng=1;
}
}
if(ng==0)
{ may=sup[0];
mv1=0;
for(l=1;l<f;l++)
{
if(sup[l]>may)
{
may=sup[l];
mv1=l;
}
}
}
}