Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: attackers en 14 Julio 2011, 04:46 am



Título: problema de lenguaje C
Publicado por: attackers en 14 Julio 2011, 04:46 am
buenas amigos necesitaba una ayuda de ustedes y es si me podría ayudar hacer un programa en c para poderme guiar que tengo que hacer varios y tener una idea de mas o menos como hacerlo


el enunciado es desarrolle un programa que dimensione una matriz de Nfila por Ncolumna, conociendo  que las columnas son vendedores y que las filas son sus respectivas ventas. calcular el promedio de ventas por vendedor y el promedio total de las ventas


Título: Re: problema de lenguaje C
Publicado por: attackers en 14 Julio 2011, 04:55 am
yo mas o menos hice esto

alguien que me pueda corregir y orientar


#include <stdio.h>
         main ()
         {
             
              int i,columnas,filas,matri[columnas][filas];
             
              printf (" diga el numero de columnas ");
                     scanf("%d",&columnas);
                     
                            printf (" diga el numero de filas ");
                     scanf("%d",&filas);

              dim matri[columnas][filas];
             
             
              }





Título: Re: problema de lenguaje C
Publicado por: leogtz en 14 Julio 2011, 06:44 am
Código
  1. #include <stdio.h>
  2. int main (void)
  3.         {
  4.  
  5.            int i,columnas,filas;
  6.  
  7.            printf (" diga el numero de columnas ");
  8.            scanf("%d",&columnas);
  9.            printf (" diga el numero de filas ");
  10.            scanf("%d",&filas);
  11.            int matri[columnas][filas];
  12.            return 0;
  13.  
  14.  
  15.            }
  16.  

Eso funciona, compilando con el estándar C99. De otra manera tendrías que usar un array dinámico o usar constantes para darle dimensión.


Título: Re: problema de lenguaje C
Publicado por: attackers en 15 Julio 2011, 05:14 am
amigo asi ??'

#include <stdio.h>
         main ()
         {
 
            int i,j,columnas,filas,ventas;
 
            printf (" diga el numero de columnas \t ");
            scanf("%d",&columnas);
            printf (" diga el numero de filas \t  ");
            scanf("%d",&filas);
            int matri[columnas][filas];
            
            for (i=1 ; i<=columnas; i++)
            {
                for (j=1 ; j<=filas; j++)  
                {
                printf ("diga su venta \t ");
                scanf ("%d",matri);
            
                                              }
                                              }
            
}


creo que ese ultimo scanf no dberia ir asi si alguien me puede ayudar un poco


Título: Re: problema de lenguaje C
Publicado por: Dark Invader en 15 Julio 2011, 11:47 am
En tu ultimo codigo¿que es lo que quieres conseguir?¿poner el valor segun las columnas y filas y darle un valor?,o simplemente que introduzca un valor y guardarlo en una variable?

Si es el primero es esto:

Código
  1. #include <stdio.h>
  2.        int main ()
  3.         {
  4.  
  5.            int i,j,columnas,filas,ventas;
  6.  
  7.            printf (" diga el numero de columnas \t ");
  8.            scanf("%d",&columnas);
  9.            printf (" diga el numero de filas \t  ");
  10.            scanf("%d",&filas);
  11.            int matri[columnas][filas];
  12.  
  13.            for (i=1 ; i<=columnas; i++)
  14.            {
  15.                for (j=1 ; j<=filas; j++)  
  16.                {
  17.                printf ("diga su venta \t %d/%d ",i,j);
  18.                scanf ("%d",&matri[i][j]);
  19.  
  20.                                              }
  21.                                              }
  22.  
  23. }
  24.  
  25.  

De todas maneras pienso que lo mas comodo seria incrementar el valor de filas y columnas en el for


Título: Re: problema de lenguaje C
Publicado por: attackers en 15 Julio 2011, 17:05 pm
ahora lo que estoy buscando es crear una variable que guarde las ventas para asi sacarle el promedio


creo que la manera de sacar el promedio total seria asi si no me equivoco si


Código
  1.  
  2. #include <stdio.h>
  3.        int main ()
  4.         {
  5.  
  6.            int i,j,columnas,filas,ventas,promedio;
  7.  
  8.            printf (" diga el numero de columnas \t ");
  9.            scanf("%d",&columnas);
  10.            printf (" diga el numero de filas \t  ");
  11.            scanf("%d",&filas);
  12.            int matri[columnas][filas];
  13.  
  14.            for (i=1 ; i<=columnas; i++)
  15.            {
  16.                for (j=1 ; j<=filas; j++)  
  17.                {
  18.                printf ("diga su venta \t %d,%d ",i,j);
  19.                scanf ("%d",&ventas);
  20.  
  21.                                              }
  22.                                              }
  23.  
  24.                                     promedio=(ventas*filas)/100;
  25.  
  26.                                              printf ("el promedio de ventas totales son %d ", promedio);
  27.  
  28. }
  29.  
  30.  
  31.  
  32.  


Título: Re: problema de lenguaje C
Publicado por: rir3760 en 15 Julio 2011, 17:32 pm
ahora lo que estoy buscando es crear una variable que guarde las ventas para asi sacarle el promedio
Tres detalles a tener en consideración en tu programa:

1) Este solo funcionara en compiladores que soporten la nueva característica "arrays de longitud variable", esto es parte de C99 (el viejo estandar C90 no lo soporta).

2) En C los indices de los arrays inician en 0 y terminan en N-1 donde N es el numero de elementos en el array. Tu estas utilizando 1 a N y eso no es correcto (el elemento de indice N no existe).

3) Para obtener el promedio debes sumar cada uno de los valores en un acumulador y al final dividir entre el numero de elementos (filas por columnas).

El programa con esas y otras correcciones es:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void)
  5. {
  6.   int filas;
  7.   int columnas;
  8.   int i;
  9.   int j;
  10.   int total;
  11.  
  12.   printf("Diga el numero de filas: ");
  13.   fflush(stdout);
  14.   scanf ("%d", &filas);
  15.  
  16.   printf("Diga el numero de columnas: ");
  17.   fflush(stdout);
  18.   scanf ("%d", &columnas);
  19.  
  20.   int mat[filas][columnas];
  21.  
  22.   total = 0;
  23.   for (i = 0; i < filas; i++)
  24.      for (j = 0; j < columnas; j++){
  25.         printf("Indica el valor de mat[%d][%d]: ", i, j);
  26.         fflush(stdout);
  27.         scanf("%d", &mat[i][j]);
  28.  
  29.         total += mat[i][j];
  30.      }
  31.  
  32.   printf("Promedio: %.2f\n", (double) total / (filas * columnas));
  33.  
  34.   return EXIT_SUCCESS;
  35. }

Un saludo