Programación General > C/C++
falla programa!!!
(1/1)
tomario:
hola hice un programa normal que calcula escanos y lo quiero simplificar usando funciones, punteros,etc, pero no se hacerlo he intentado lo siguiente, es la primera vez que uso funciones, espero q m puedan ayudar, gracias
codigo original, sin funciones:
--- Código: C ---[list]#include<stdio.h>#include <stdlib.h>#include <math.h> main(){ int partidos=0; printf("nn Bienvenido al sistema de calculo de escanos.n por favor siga las instrucciones, graciasn"); while ( partidos <2 || partidos>16){ printf("n eliga el numero de partidos politicos que desea (numero entre 2 y 16)t"); scanf("%d",&partidos); } /*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"); scanf("%d",&escanos); } /*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); scanf("%f",&votos); mpartidos[i][0]=votos; } printf("nn Ahora el programa calculara los escanos segun estos 4 metodos:n n HAMILTON n n D'HONT n n LAGUE n n HILL-HUNTINGTON 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++; } printf("n"); } printf("n"); 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*/ int z; for (i=0; i<partidos; i++) { z=i+1; printf("n partido%d %d",z,mpartidos[i][1]); } printf("n");} [/list] -------------------------------------------------------------------------------------------------------------------------------
y este es con funciones, q estara fatal hecho:----------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
--- Código: C ---[list]#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++; } printf("n"); } 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("nn Bienvenido al sistema de calculo de escanos.n por favor siga las instrucciones, graciasn"); while ( partidos <2 || partidos>16){ printf("n eliga el numero de partidos politicos que desea (numero entre 2 y 16)t"); scanf("%d",&partidos); } /*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"); scanf("%d",&escanos); } /*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); scanf("%f",&votos); mpartidos[i][0]=votos; } printf("nn Ahora el programa calculara los escanos segun este metodo:n n D'HONT 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); printf("n"); 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]); } printf("n");} [/list]
Navegación
Ir a la versión completa