hola hice este programa, y despues lo quise hacer con funciones, pero siempre me da fallos, soy nuevo manejando funciones, si alguien me puede ayudar, muchas gracias
codigo original:
Código C:
Ver original#include<stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
int partidos=0;
printf("\n\n Bienvenido al sistema de calculo de escanos.\n por favor siga las instrucciones, gracias\n");
while ( partidos <2 || partidos>16){
printf("\n eliga el numero de partidos politicos que desea (numero entre 2 y 16)\t"); }
/*system('clear');*/
int mpartidos[17][50];
float votos;
int i;
int f;
int c;
for (f=0;f<partidos;f++){
for (c=0;c<50;c++){
mpartidos[f][c]=0;
}
}
int escanos=0;
while (escanos<7 || escanos>100){
printf("\n numero de escanos:(numero entre 7 y 100)\t"); }
/*system('clear');*/
int a=0;
printf("\n A continuacion meta los votos recibidos por cada partido:\n"); for (i=0;i<partidos;i++){
a=i+1;
printf("\n partido(%d)=\t",a
); mpartidos[i][0]=votos;
}
printf("\n\n Ahora el programa calculara los escanos segun este metodo:\n \n D'HONT \n \n ");
int TAM=100;
/*METODO DHONT*/
float mdhont[17][1000];
float aq;
int fil;
int col;
float cl;
for (fil=0;fil<partidos;fil++){
cl=0;
for (col=0;col<TAM;col++){
aq=(mpartidos[fil][0])/(cl+1);
mdhont[fil][col]=(aq);
cl++;
}
}
float mx=0;
int aa,bb;
for(i=0;i<escanos;i++){
for (fil=0;fil<partidos;fil++){
for (col=0;col<TAM;col++){
if (mdhont[fil][col]>mx){
mx=mdhont[fil][col];
aa=fil;
bb=col;
}
}
}
mdhont[aa][bb]=0;
mx=0;
mpartidos[aa][1]=mpartidos[aa][1]+1;
}
/*system("clear");*/
/*fin metodo DHONT*/
/*system("clear");*/
int z;
for (i=0; i<partidos; i++) {
z=i+1;
printf("\n partido%d \t%d n",z
,mpartidos
[i
][1]); }
}
CODIGO CON FUNCIONES:----------------------------------------------------------------------------------------
Código C:
Ver original#include<stdio.h>
#include <stdlib.h>
#include <math.h>
void traspaso(float *metodo1,float aux,int p,int T){
int fil;
int col;
float cl=0;
for (fil=0;fil<p;fil++){
cl=0;
for (col=0;col<T;col++){
*metodo1=(aux);
cl++;
}
}
return ;
}
void max_escans(float *metodo2,float mpart,int esca,int p,int T){
int fil;
int col;
int i;
float mx=0;
int aa,bb;
for(i=0;i<esca;i++){
for (fil=0;fil<p;fil++){
for (col=0;col<T;col++){
if (*metodo2>mx){
mx=*metodo2;
aa=fil;
bb=col;
}
}
}
metodo2=0;
mx=0;
mpart=mpart+1;
}
}
main()
{
int partidos=0;
printf("\n\n Bienvenido al sistema de calculo de escanos.\n por favor siga las instrucciones, gracias\n");
while ( partidos <2 || partidos>16){
printf("\n eliga el numero de partidos politicos que desea (numero entre 2 y 16)\t"); }
/*system('clear');*/
int mpartidos[17][50];
float votos;
int i;
int f;
int c;
for (f=0;f<partidos;f++){
for (c=0;c<50;c++){
mpartidos[f][c]=0;
}
}
int escanos=0;
while (escanos<7 || escanos>100){
printf("\n numero de escanos:(numero entre 7 y 100)\t"); }
/*system('clear');*/
int a=0;
printf("\n A continuacion meta los votos recibidos por cada partido:\n"); for (i=0;i<partidos;i++){
a=i+1;
printf("\n partido(%d)=\t",a
); mpartidos[i][0]=votos;
}
printf("\n\n Ahora el programa calculara los escanos segun este metodo:\n \n D'HONT \n \n ");
int TAM=100;
/*METODO DHONT*/
float mdhont[17][1000];
float cl;
float aux1;
int fil;
int col;
int aa;
int cc;
cc=1;
aux1=(mpartidos[fil][0])/(cl+1);
traspaso(*mdhont,aux1,partidos,TAM);
max_escans(*mdhont,mpartidos[aa][cc],escanos,partidos,TAM);
/*system("clear");*/
/*fin metodo DHONT*/
/*system("clear");*/
int z;
for (i=0; i<partidos; i++) {
z=i+1;
printf("\n partido%d %d",z
,mpartidos
[i
][1]); }
}
GRACIAS!!!!