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

[0] Índice de Mensajes

Ir a la versión completa