Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Paul Young en 2 Diciembre 2010, 05:08 am



Título: ayuda con programas
Publicado por: Paul Young en 2 Diciembre 2010, 05:08 am
en una linea de produccion necesito tomar 300 muestras diarias para evaluar el peso y el tamaño
peso normal:57 gramos
tamaño normal:63 mm

necesito que el programa imprima el numero de muestras totales y el numero de muestras que sobrepasan el tamaño y el peso

puse el codigo asi pero ni al caso con la sintaxis

#include <stdio.h>
#include <conio.h>
int main()
{
    int st=0;int sp=0;int p=0;int f=0;int i=0;
    for(i=1,i=300:i++);
    {
                       printf("introduce peso mueestra:\n");
                       scanf("%i\n"&p);
                       printf("introduce tamaño mueestra:\n");
                       scanf("%i\n"&t);
                       if(p>57);
                       {
                                sp=sp++
                                }
                                if(t>63)
                                {
                                        st=st++
                                        }
                                        }
                                        printf("numero de muestras que sobrepasa el peso son % n\n",sp);
                                        printf("numero de muestras que sobrepasa el tamaño son % i\n",st);
                                        getch();
                                        return 0;
                                        }
                               


Título: Re: ayuda con programas
Publicado por: Paul Young en 2 Diciembre 2010, 05:32 am
el otro programa es el siguiente:
si tengo 3 productos (A,B y C)
y deseo conocer las preferencias del publico encuestando a 100 personas.
necesito imprimir
el porcentaje que eligieron A
el porcentaje que eligieron B
el porcentaje que eligieron C

PUSE EL SIGUIENTE CODIGO A VER QUE TAL ESTE

#include <stdio.h>
#include <conio.h>
int main ()
{
    float PP1=0, PP2=0, PP3=0;
    int opcion=0, Cp1=0, Cp2=0, Cp3=0, ct=0;
    {
        printf("selecciona[1]=producto A[2]= producto B[3]= producto C");
        scanf("%i",&opcion);
        switch(opcion);
        {
                       1:Cp1=Cp1+1;
                       2:Cp2=Cp2+1;
                       3:Cp3=Cp3+1;
                       default:break;
                       }
ct=ct++1;
if(ct==100)
}
PP1=(Cp1/ct)*100;
PP2=(Cp2/ct)*100;
PP3=(Cp3/ct)*100;
printf("porcentaje de producto 1%f",PP1);
printf("porcentaje de producto 2%f",PP2);
printf("porcentaje de producto 3%f",PP3);
return 0;
}
               


Título: Re: ayuda con programas
Publicado por: diskontrol en 3 Diciembre 2010, 01:10 am
Buenas, vamos a empezar con el primero porque te veo un poco perdido. La idea está más o menos bien, pero me parece que tienes que repasar bastante tus apuntes de C .

Citar
necesito que el programa imprima el numero de muestras totales y el numero de muestras que sobrepasan el tamaño y el peso

El número de muestras totales va a ser siempre 300 ya que tú lo has definido así. Lo segundo da a entender que quieres saber cuantas muestras exceden de forma simultanea en tamaño y peso, pero en tu código se ve reflejado como si quisieras mostrar las que exceden de tamaño o peso.

Centrándonos más en el código:

Citar
int st=0;int sp=0;int p=0;int f=0;int i=0;
    for(i=1,i=300:i++);

Declaras una variable que no usas, supongo que ha sido un error al escribir. También inicializas i a 0 pero luego en el bucle la usas con valor igual a 1 (aunque esto es un detalle menor que no interfiere con la ejecución del programa, pero me da rabia xD). Además el bucle  está lleno de errores; pones comas y dos puntos en lugar de puntos y comas, pero lo más importante es el punto y coma al finalizar el bucle debido al cual dejas todas las instrucciones siguientes fuera del mismo.


Citar
printf("introduce peso mueestra:\n");
                       scanf("%i\n"&p);
                       printf("introduce tamaño mueestra:\n");
                       scanf("%i\n"&t);

En los scanf pones %i para los enteros y si mal no recuerdo debería ser %d además añades \n, también te ha faltado poner la coma entre los dos argumentos.


Citar
if(p>57);
                       {
                                sp=sp++
                                }
                                if(t>63)
                                {
                                        st=st++
                                        }

Aquí te pasa como en el bucle for, si quieres poner una instrucción anidada en el if no pongas punto y coma detrás del mismo. Además si solo vas a anidar una instrucción los corchetes no son necesarios (funciona = pero cuando tengas mil corchetes en un código lo agradecerás.


Y bueno... a parte de que cuando presentes un código a alguien deberías tratar de indentarlo para que la otra persona no se tenga que esforzar tanto al leerlo lo dicho, tu planteamiento para el algoritmo parecía correcto. Así que básicamente debes fijarte más en lo que escribe.
Te pongo cómo quedaría el código corregido para que te fijes. El segundo no lo miro para que intentes ver que falla tú solo, pero si tienes problemas contesta y seguro que yo u otra persona te ayuda.

Código:
#include <stdio.h>

int
main ()
{
  int st = 0;
  int sp = 0;
  int p = 0;
  int t = 0;
  int i;
  for (i = 0; i < 300; i++)
    {
      printf ("introduce peso muestra:\n");
      scanf ("%d", &p);
      printf ("introduce tamaño muestra:\n");
      scanf ("%d", &t);
      if (p > 57)
sp++;
      if (t > 63)
st++;
    }
  printf ("numero de muestras que sobrepasa el peso son %d \n", sp);
  printf ("numero de muestras que sobrepasa el tamaño son %d \n", st);

  return 0;
}