Domingo 15 de Diciembre de 2024, 04:42
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
falla programa!!!
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: falla programa!!! (Leído 766 veces)
tomario
Nuevo Miembro
Mensajes: 17
falla programa!!!
«
en:
Martes 9 de Noviembre de 2010, 20:12 »
0
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
]
Tweet
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
falla programa!!!