• Domingo 15 de Diciembre de 2024, 05:39

Autor Tema:  Ayuda Con Matrices  (Leído 1084 veces)

cazadorite

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Ayuda Con Matrices
« en: Sábado 22 de Septiembre de 2007, 02:19 »
0
una empresa discografica nos encargo procesar los resultados de una encuesta realizada a la poblacion con referencia al tema musical preferido.
para ello se dispone de un lote de registros con las respuestas dadas por los encuestados cada registro contiene la siguiente informacion:

sexo de encuestado( f o m)
edad del encuestado
provincia donde habita encuestado ( 1 a 24)
tema elegido (1 a 30)

ultimo registro con edad igual a 0
determinar e informar:

a- para cada uno de los 30 temas musicales la decada de edades que mas lo voto. se entiende por decada de edad las personas cuyas edades estan en el rango indicado en la siguiente tabla:

decada edad
0 1-9
1 10-19
2 20-29
. .
. .
9 90-99
b-para cada provincia indicar el tema mas votado por las mujeres.

wenas tengo problemas para mostrar el punto b)use una matriz para contar pero para mostrar el tema maximo de cada provincia lo recorro con el for pero como mustro el tema mas votado en ese ciclo y el a)ni hablar si alguien me orienta de agradece usaria una mat de [30][9]...esos 9 son la decada pero no se ingresa pero la edad si como hago para poner condicion en la edad y meterla en cada rango

#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <ctype.h>

void main (void)
{
   int e,pv,t,i,j,max;
   char sx;
   int cont[24][30]={0};
   clrscr();

   printf("ingrese sexo f o m:  ");
   scanf("%c",&sx);
   printf("ingrese edad  ");
   scanf("%d",&e);
   printf("ingrese provincia  ");
   scanf("%d",&pv);
   printf("ingrese tema  ");
   scanf("%d",&t);

   while(e!=0)
   {

     switch(sx)
        {
            case 'f':
         {
            cont[pv-1][t-1]++;
               break;
            }
         }

   printf("ingrese edad  ");
   scanf("%d",&e);
   printf("ingrese provincia  ");
   scanf("%d",&pv);
   printf("ingrese tema  ");
   scanf("%d",&t);
    printf("ingrese sexo f o m:  ");
   scanf("%c",&sx);

   }
      max=cont[0][0];
      for (i=0;i<24;i++)
         for(j=0;j<30;j++)
         {
         if (cont[j]>max)
      max=cont[j];
         printf ("para cada provincia tema mas votado %d " ,max);
   }

  getch();
}

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Ayuda Con Matrices
« Respuesta #1 en: Domingo 23 de Septiembre de 2007, 05:56 »
0
weno, para empezar me huele a tarea, pero vamos !!!

primero, trata de acomodar tu codigo para que todos podamos leerlo y entenderlo, para luego poder ayudarte, ya que asi es ma facil que como lo tenej ahurita.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

cazadorite

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Ayuda Con Matrices
« Respuesta #2 en: Domingo 23 de Septiembre de 2007, 19:59 »
0
ya lo tengo casi terminado solo que el problema es cuando itera de nuevo el while para ingresar los datos en la pregunta del sexo me sale mal tuve que quitar la pregunta porque me salia mal junto con la edad y ese es mi problema o si no directamente lo da como femenino sin que aprete la f -_-
espero la ayuda gracias



#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <ctype.h>

void main (void)
{
int e,pv,t,i,j,pos,max=0,ps,mx=0;
char sx;
int cont[24][30]={0};
int dec[30][9]={0};
clrscr();

printf("ingrese sexo ( f o m) ") ;
scanf("%c",&sx);
printf("ingrese edad (1 a 99) ");
scanf("%d",&e);
printf("ingrese provincia (1 a 24) ");
scanf("%d",&pv);
printf("ingrese tema (1 a 30) ");
scanf("%d",&t);

while(e!=0)// corta edad==0
{
switch(sx)
{
case 'f':
cont[pv-1][t-1]++;
break;
default:
{
printf( "Introdujo una letra incorrecta\n");
printf( " Introduzca el sexo de nuevo (f o m)\n" );
break;

}
}
if(e>=1 && e<10)
dec[t-1][0]++;
if(e>=10 && e<20)
dec[t-1][1]++;
if(e>=20 && e<30)
dec[t-1][2]++;
if(e>=30 && e<40)
dec[t-1][3]++;
if(e>=40 && e<50)
dec[t-1][4]++;
if(e>=50 && e<60)
dec[t-1][5]++;
if(e>=60 && e<70)
dec[t-1][6]++;
if(e>=70 && e<80)
dec[t-1][7]++;
if(e>=80 && e<90)
dec[t-1][8]++;
if(e>=90 && e<100)
dec[t-1][9]++;

printf("ingrese edad ");
scanf("%d",&e);
printf("ingrese provincia ");
scanf("%d",&pv);
printf("ingrese tema ");
scanf("%d",&t);
}
for(i=0;i<30;i++)
{
for(j=0;j<10;j++)
{
if(dec[j]>mx)
{
mx=dec[j];
ps=j;
}
}
if(mx>0)
{
printf ("para el tema %d la decada de edades que mas lo voto es %d\n",i+1,ps);
mx=0;
}
ps=0;
}


for(i=0;i<24;i++)
{
for(j=0;j<30;j++)
{
if(cont[j]>max)
{
max=cont[j];
pos=j;
}
}
if(max>0)
{
printf ("para la provincia %d el tema mas votado por las mujeres es %d\n",i+1,pos+1);
max=0;
}
pos=0;
}
}
getch();