Domingo 15 de Diciembre de 2024, 07:30
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
) »
Duda vectores y matrices
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Duda vectores y matrices (Leído 2206 veces)
pabloarg
Nuevo Miembro
Mensajes: 4
Duda vectores y matrices
«
en:
Lunes 26 de Julio de 2010, 15:22 »
0
Hola a todos, necesito ayuda con en ejercicio para un TP, el ej. dice así:
Una empresa de turismo realiza excursiones a las cuatro regiones del mundo
Región Nombre Costo
1 América 3500
2 Europa 4000
3 Asia 4500
4 África 2000
Cada vez que recibe un pedido tomado por alguna de sus 6 agencias, tiene la siguiente información, finalizando con número de pedido =0
Número de pedido
Agencia
Mes
Destino
Cantidad de mayores
Cantidad de menores
Se sabe que los menores pagan un 75% del valor del tour.
Se desea conocer:
1. El porcentaje que representa lo recaudado por cada agencia sobre el total.
2. Cuantos pasajeros viajaron a cada destino en cada mes.
3. Que agencia tomó más pedidos en el mes de Julio.
4. Cuantos pedidos superaron los 11 pasajeros en total.
5. Imprimir ordenado por destino:
A. La recaudación.
B. La cantidad total de pasajeros transportados.
Lo que tengo hasta ahora es:
Código: C++
#include<stdio.h>
#include<conio.h>
#include<string.h>
void
main
(
)
{
int
np,ag,mes,dest,cmay,cmen,f,c,i
;
int
vra
[
7
]
,vrd
[
6
]
,mcant
[
5
]
[
13
]
,mped
[
7
]
[
13
]
;
for
(
i
=
1
;
i
<=
6
;
i
++
)
{
vra
[
i
]
=
0
;
}
for
(
i
=
1
;
i
<=
5
;
i
++
)
{
vrd
[
i
]
=
0
;
}
for
(
f
=
1
;
f
<=
4
;
f
++
)
{
for
(
c
=
1
;
c
<=
12
;
c
++
)
{
mcant
[
f
]
[
c
]
=
0
;
}
}
for
(
f
=
1
;
f
<=
6
;
f
++
)
{
for
(
c
=
1
;
c
<=
12
;
c
++
)
{
mped
[
f
]
[
c
]
=
0
;
}
}
clrscr
(
)
;
printf
(
"Ingrese numero de pedido"
)
;
scanf
(
"%d"
,
&
np
)
;
while
(
np
!
=
0
)
{
printf
(
"Ingrese numero de agencia"
)
;
scanf
(
"%d"
,
&
ag
)
;
printf
(
"Ingrese numero de mes"
)
;
scanf
(
"%d"
,
&
mes
)
;
printf
(
"Ingrese el destino"
)
;
scanf
(
"%d"
,
&
dest
)
;
printf
(
"Ingrese la cantidad de mayores"
)
;
scanf
(
"%d"
,
&
cmay
)
;
printf
(
"Ingrese la cantidad de menores"
)
;
scanf
(
"%d"
,
&
cmen
)
;
mcant
[
dest
]
[
mes
]
=
mcant
[
dest
]
[
mes
]
+
cmay
+
cmen
;
mped
[
ag
]
[
mes
]
=
mped
[
ag
]
[
mes
]
+
1
;
{
for
(
f
=
1
;
f
<=
4
;
f
++
)
{
for
(
c
=
1
;
c
<=
12
;
c
++
)
{
printf
(
"al destino %d en el mes %d hubieron %d pasajeros n"
,f,c,mcant
[
f
]
[
c
]
)
;
}
}
printf
(
"Ingrese numero de pedido"
)
;
scanf
(
"%d"
,
&
np
)
;
}
}
}
El tema esta en que me deja cargar un solo grupo de datos y ejectua ese grupo. Como hago para cargar por ejemplo 5 grupos y que despues ejecute ese grupo ??
Gracias !
Tweet
vite666
Nuevo Miembro
Mensajes: 13
Re: Duda vectores y matrices
«
Respuesta #1 en:
Sábado 31 de Julio de 2010, 20:42 »
0
pues podrias vaciar tus datos en un archivo, con eso puedes vaciar o cargar cuantos grupos desees.
solo busca en google sobre el "manejo de archivos en C" no te envio a ninguna pagina xq no puedo, po eso de los privilegios.
Mikan
Nuevo Miembro
Mensajes: 8
Re: Duda vectores y matrices
«
Respuesta #2 en:
Domingo 1 de Agosto de 2010, 21:45 »
0
Creo que el problema está en que para salir del bloque while esperas la entrada "0".
Prueba lo siguiente, que para finalizar el programa, debas introducir un pedido número 99.
Entonces quedaría:
clrscr();
printf("Ingrese numero de pedido");
scanf("%d",&np);
while(np!=99)
...
Prueba y me cuentas!
pabloarg
Nuevo Miembro
Mensajes: 4
Re: Duda vectores y matrices
«
Respuesta #3 en:
Martes 3 de Agosto de 2010, 00:57 »
0
Gracias por su ayuda, ya lo solucioné, ahora necesito armar un menu, tienen idea de como sería ?
Código: C
#include<stdio.h>
#include<conio.h>
#include<string.h>
void
main
(
)
{
int
np
,
ag
,
mes
,
dest
,
cmay
,
cmen
,
f
,
c
,
i
;
int
vra
[
7
]
,
vrd
[
6
]
,
mcant
[
5
]
[
13
]
,
mped
[
7
]
[
13
]
;
for
(
i
=
1
;
i
<=
6
;
i
++
)
{
vra
[
i
]
=
0
;
}
for
(
i
=
1
;
i
<=
5
;
i
++
)
{
vrd
[
i
]
=
0
;
}
for
(
f
=
1
;
f
<=
4
;
f
++
)
{
for
(
c
=
1
;
c
<=
12
;
c
++
)
{
mcant
[
f
]
[
c
]
=
0
;
}
}
for
(
f
=
1
;
f
<=
6
;
f
++
)
{
for
(
c
=
1
;
c
<=
12
;
c
++
)
{
mped
[
f
]
[
c
]
=
0
;
}
}
clrscr
(
)
;
printf
(
"Ingrese numero de pedido"
)
;
scanf
(
"%d"
,&
np
)
;
while
(
np
!=
0
)
{
printf
(
"Ingrese numero de agencia"
)
;
scanf
(
"%d"
,&
ag
)
;
printf
(
"Ingrese numero de mes"
)
;
scanf
(
"%d"
,&
mes
)
;
printf
(
"Ingrese el destino"
)
;
scanf
(
"%d"
,&
dest
)
;
printf
(
"Ingrese la cantidad de mayores"
)
;
scanf
(
"%d"
,&
cmay
)
;
printf
(
"Ingrese la cantidad de menores"
)
;
scanf
(
"%d"
,&
cmen
)
;
mcant
[
dest
]
[
mes
]
=
mcant
[
dest
]
[
mes
]
+
cmay
+
cmen
;
printf
(
"Ingrese numero de pedido"
)
;
scanf
(
"%d"
,&
np
)
;
}
for
(
f
=
1
;
f
<=
4
;
f
++
)
{
for
(
c
=
1
;
c
<=
12
;
c
++
)
{
printf
(
"al destino %d en el mes %d hubieron %d pasajeros n"
,
f
,
c
,
mcant
[
f
]
[
c
]
)
;
}
}
getch
(
)
;
}
Gracias !
vite666
Nuevo Miembro
Mensajes: 13
Re: Duda vectores y matrices
«
Respuesta #4 en:
Martes 3 de Agosto de 2010, 17:59 »
0
con un switch
Ejemplo:
Código: C
int
opcion
;
printf
(
"1. opcion 1n 2.opcion2n..."
)
;
scanf
(
"%i"
,&
opcion
)
;
switch
(
opcion
)
{
case
1
:
//codigo que quieres que haga si elige la opcion 1
break
;
case
2
:
//codigo
break
;
.
.
.
default
:
//codogo en caso de que no sea valida la opcion
break
;
}
pabloarg
Nuevo Miembro
Mensajes: 4
Re: Duda vectores y matrices
«
Respuesta #5 en:
Miércoles 4 de Agosto de 2010, 20:09 »
0
Ya casi lo tengo listo, pero no se porque al terminar la carga de datos con numero de pedido =0, no me ejecuta las opciones sino que vuelve al codigo: Ayuda !
Código: C
#include<stdio.h>
#include<conio.h>
int
mcant
[
5
]
[
13
]
=
{
0
}
,
vped
[
7
]
=
{
0
}
,
vcant
[
5
]
=
{
0
}
;
int
c11
=
0
,
ctot
=
0
,
numped
=
0
,
na
=
0
,
mayor
=
0
,
mes
,
dest
,
may
,
men
,
i
,
j
;
float
vra
[
7
]
=
{
0
}
,
vrd
[
5
]
=
{
0
}
,
vimp
[
5
]
=
{
0
}
;
char
vnumped
[
5
]
[
10
]
=
{
""
,
"america"
,
"europa"
,
"asia"
,
"africa"
,
}
;
void
main
(
)
{
vimp
[
1
]
=
3500
;
vimp
[
2
]
=
4000
;
vimp
[
3
]
=
4500
;
vimp
[
4
]
=
2000
;
int
opcion
;
clrscr
(
)
;
printf
(
"0- Ingresar datos n"
)
;
printf
(
"1- Porcentaje que representa lo recaudado por cada agencia sobre el total n"
)
;
printf
(
"2- Cantidad de pasajeros que viajaron a cada destino en cada mes n"
)
;
printf
(
"3- Agencia que tom¢ m s pedidos en el mes de julio n"
)
;
printf
(
"4- Cantidad de pedidos que superaron los 11 pasajeros n"
)
;
printf
(
"5- Recaudaci¢n por destino n"
)
;
printf
(
"6- Cantidad de pasajeros transportados por destino n"
)
;
scanf
(
"%d"
,&
opcion
)
;
switch
(
opcion
)
{
case
0
:
printf
(
"ingrese el n£mero de pedido: "
)
;
scanf
(
"%d"
,&
numped
)
;
while
(
numped
!=
0
)
{
printf
(
"ingrese el numero de agencia: "
)
;
scanf
(
"%d"
,&
na
)
;
printf
(
"ingrese el mes: "
)
;
scanf
(
"%d"
,&
mes
)
;
printf
(
"ingrese el destino (1=Am‚rica,2=Europa,3=Asia,4=Africa): "
)
;
scanf
(
"%d"
,&
dest
)
;
printf
(
"ingrese la cantidad de mayores: "
)
;
scanf
(
"%d"
,&
may
)
;
printf
(
"ingrese la cantidad de menores: "
)
;
scanf
(
"%d"
,&
men
)
;
vra
[
na
]
=
vra
[
na
]
+
(
vimp
[
dest
]
*
may
)
+
(
vimp
[
dest
]
*
men
*
0.75
)
;
mcant
[
dest
]
[
mes
]
=
mcant
[
dest
]
[
mes
]
+
may
+
men
;
vped
[
na
]
=
vped
[
na
]
+
1
;
if
(
(
may
+
men
)
>
11
)
{
c11
=
c11
+
1
;
}
vrd
[
dest
]
=
vrd
[
dest
]
+
(
vimp
[
dest
]
*
may
)
+
(
vimp
[
dest
]
*
men
*
0.75
)
;
vcant
[
dest
]
=
vcant
[
dest
]
+
may
+
men
;
mayor
=
vped
[
1
]
;
na
=
1
;
printf
(
"ingrese el n£mero de pedido: "
)
;
scanf
(
"%d"
,&
numped
)
;
}
break
;
case
1
:
for
(
i
=
1
;
i
<=
7
;
i
++
)
{
printf
(
"Lo recaudado por la agencia %d representa el %f porciento del total"
,
i
,
(
vra
[
i
]
*
100
/
ctot
)
)
;
}
break
;
case
2
:
for
(
i
=
1
;
i
<=
5
;
i
++
)
{
for
(
j
=
1
;
j
<=
13
;
j
++
)
{
printf
(
"Al destino %d en el mes %d viajaron %d pasajeros"
,
i
,
j
,
mcant
[
i
]
[
j
]
)
;
}
}
break
;
case
3
:
for
(
i
=
2
;
i
<=
7
;
i
++
)
{
if
(
vped
[
i
]
>
mayor
)
{
mayor
=
vped
[
i
]
;
na
=
i
;
}
}
for
(
i
=
1
;
i
<=
7
;
i
++
)
{
if
(
vped
[
i
]
==
mayor
)
{
printf
(
"En el mes de Julio la agencia %d tomo la mayor cantidad de pedidos, que fueron %d"
,
i
,
mayor
)
;
}
}
break
;
case
4
:
printf
(
"Hubieron %d pedidos mayores a 11 pasajeros"
,
c11
)
;
break
;
case
5
:
for
(
i
=
1
;
i
<=
5
;
i
++
)
{
printf
(
"El destino %d recaud¢ %f"
,
i
,
vrd
[
i
]
)
;
}
break
;
case
6
:
for
(
i
=
1
;
i
<=
5
;
i
++
)
{
printf
(
"Al destino %d viajaron %d pasajeros"
,
i
,
vcant
[
i
]
)
;
}
break
;
default
:
printf
(
"error!"
)
;
break
;
}
}
pabloarg
Nuevo Miembro
Mensajes: 4
Re: Duda vectores y matrices
«
Respuesta #6 en:
Miércoles 4 de Agosto de 2010, 20:29 »
0
Ademas cuando lo ejecuto sin el menu me manda el mensaje "Floating point error: Domain Abnormal program termination"
vite666
Nuevo Miembro
Mensajes: 13
Re: Duda vectores y matrices
«
Respuesta #7 en:
Jueves 5 de Agosto de 2010, 11:56 »
0
puedes meter una nueva opcion que sea salir y todo lo pones dentro dentro de un while
Código: C
opcion
=
1
//forsamos a que entre al while
while
(
opcion
!=
7
)
//mientras el usuario no de opcion de salir lo seguira repitiendo
{
printf
(
"7. Salir"
)
;
switch
(
opcion
)
{
case
1
:
printf
(
"..."
)
;
/*como en estas opciones solo muestras informacion el programa lo va a mostrar pero demaciado rapido que ni lo vas a ver*/
getch
(
)
;
/*esto es para hacer una pausa en el programa, es parte de <conio.h> si trabajas en windows en linux no recuerdo la libreria, el problema es que no es ANSI asi que si no te corre utiliza getchar() dos veces, y si sigue no funcionado prueva buscar el google "pausa en c"*/
break
;
case
7
:
break
;
}
}
con respecto el error que te marca, tal vez es porque no inicializaste "opcion" y cuando tratas de utilizarla en el switch pues no la puede evaluar ya que tiene "basura" por el momento. ya que si dices la linea donde te marca el error te lo confirmaria.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Duda vectores y matrices