Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - leosansan

#1161
CitarFíjate en  srand(time(0) y el uso de la librería time, para que no salgan siempre los mismos valores. Por lo demás quedaría algo así:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/*Ejercicio 5: una agencia de carros tiene 15 modelos de autos y 10 vendeores
se desea conocer que modelo se vende mas, quien es el vendedor que vende mas y
el total de autos que vende la agencia*/
int main(int argc, char *argv[])
{
   int x, y, agencia[10][15], SC, SR, TA,modelo=0,modelo1=0,Vendedor;
   char vendedor[10][40]={{"Ruben"},{"Ivonne"},{"Jesus"},
   {"Nayelli"},{"Miguel"},{"Angel"},{"Carlos"},{"Marco"},{"Lupe"},
   {"Lupita"}};
   printf("Agencia de carros a ver si ahorra, S.A. de C.V.\n\n");
   printf("\tM1  M2  M3  M4  M5  M6  M7  M8  M9  M10  M11  M12  M13  M14  M15 TOTAL\n\n");
   srand(time(0));
   /*SE GENERA LA TABLA*/
   for (x=0; x<10; x++)
       {
           for (y=0; y<15; y++)
               {
               agencia[x][y] = rand()%4;
           }
       }
   /*SUMA POR RENGLONES*/
   TA = 0;
   for (x=0; x<10; x++)
       {
           printf("%s\t ", vendedor[x]);
           SR = 0;
           for (y=0; y<15; y++)
               {
                   printf("%d   ", agencia[x][y]);
                   SR = SR + agencia[x][y];
               }if (SR>modelo) {modelo=SR;Vendedor=x;}
     TA = TA + SR;
     printf("  %i\n\n", SR);
 }
   /*SUMA POR COLUMNAS*/
   printf("TOTAL\t");
   modelo=0;
   for (y=0; y<15; y++)
       {
           SC = 0;
           for (x=0; x<10; x++)
               {
                   SC = SC + agencia[x][y];
               }if (SC>modelo) {modelo=SC;modelo1=y;}
           printf("%d  ", SC);
       }
   printf("\n\nEL MODELO MAS VENDIDOS ES: M%d\n\n", modelo1+1);
   printf("\n\nEL MEJOR VENDEDOR ES: %s\n\n", vendedor[Vendedor]);
   system("PAUSE");
   return 0;
}

Saludos!.
#1162
Programación C/C++ / Re: Ayuda programa
11 Noviembre 2012, 16:49 PM
Cita de: Bus_19 en 11 Noviembre 2012, 16:40 PM
Hay una cosa que no entiendo, que es lo que quieres decir con: suma+=num???
CitarDe entrada suma=numero=primer numero, pero para sacar la media de los dos al introducir el segundo hago suma=suma+numero o en forma abreviada suma+=numero (=número primero más número nuevo), que es equivalente a sumar al primer numero (que está en suma) el segundo numero).
Espero que te aclare algo este rollo.
Saludos!.
#1163
Programación C/C++ / Re: Ayuda programa
11 Noviembre 2012, 15:54 PM
Aquí tienes una pista, habría que hacerlo más eficiente pero para empezar ya tienes algo:
Código (cpp) [Seleccionar]
#include <stdio.h>

int main()
{
   int num=0,suma=0,i=0;
       do{
       printf("Introduzca  numero= ");
       suma=num;
       scanf ("%d",&num);
       suma+=num;
       if (num==0) break;
       if (i==0) {
           printf("Media= %g\n",num/1.0);
           i=1;
       }
       else printf("Media= %g\n",suma/2.0);
   }while (1);
   return 0;
}

O bien:
Código (cpp) [Seleccionar]
#include <stdio.h>

int main()
{
    int num=0,suma=0,i=0;
        printf("Introduzca  numero= ");
        scanf ("%d",&num);
        printf("Media= %g\n",num/1.0);
        do{
        printf("Introduzca  numero= ");
        suma=num;
        scanf ("%d",&num);
        suma+=num;
        if (num==0) break;
        printf("Media= %g\n",suma/2.0);
    }while (1);
    return 0;
}

Saludos!.
#1164
Programación C/C++ / Re: Duda con strlen
10 Noviembre 2012, 23:43 PM
Inspirado por 0xDani y sin función:
Código (cpp) [Seleccionar]
#include <stdio.h>

int main()
{
    int i,k=0;
    char cadena [256];
    printf ("Introduce la cadena: ");
    gets (cadena);
    for (i=0;cadena[i]!='\0';i++)
        cadena[i]!=' ' ? k++:0 ;
    printf ("longitud: %d",k);
    return 0;
}

Saludos!.
#1165
No sé si he pillado del todo la idea, creo que sí:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/*PROGRAMA QUE GENERA UNA MATRIZ Y CALCULA SU TRAZA tr(M) Y SUMAS POR COLUMNAS
Y RENGLONES*/
int main(int argc, char *argv[])
{
  int x, y, tabla[10][10], R, C, T=0,Sr=0,Sc=0, SR[10]={0}, SC[10]={0}, z;
  printf("Cuantos renglones quiere que tenga la matriz: ");
  srand(time(0));
  scanf("%i", &R);
  printf("\nCuantas columnas quiere que tenga la matriz: ");
  scanf("%i", &C);
  printf("\nMATRIZ\n\n");
/*SE GENERA LA MATRIZ*/
  for (x=0; x<R; x++)
  {
      for (y=0; y<C; y++)
      {
          tabla[x][y] = rand()%10;
          printf("\t%d", tabla[x][y]);
      }
      printf("\n\n");
  }
  /*SE CALCULA LA TRAZA*/
    for (x=0; x<R; x++) {
          for (y=0; y<1; y++)
            T +=tabla[x][x];
    }
/*SE CALCULA LA SUMA POR FILAS*/
    for (x=0; x<C; x++){
      for (y=0; y<R; y++)
        SR[x] += tabla[x][y];
    }

    for (x=0; x<R; x++)
        {
            printf("\t%d", SR[x]);
            Sr+=SR[x];
        }printf(" = %d ", Sr);
    printf(" =renglones\n");
    /*SE CALCULA LA SUMA POR COLUMNAS*/
    for (y=0; y<C; y++){
      for (x=0; x<R; x++)
        SC[y] += tabla[x][y];
    }

    for (y=0; y<C; y++)
        {
            printf("\t%d", SC[y]);
            Sc+=SC[y];
        }printf(" = %d  ", Sc);
    printf("= columnas");
    printf("\n\ntr(M) = %d", T);
    printf("\n\n");
    system("PAUSE");
    return 0;
}

Saludos!.
#1166
Programación C/C++ / Re: Duda con strlen
10 Noviembre 2012, 21:01 PM
Una forma simple sería:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <string.h>

int main()
{
   int i,k,l;
   char cadena [256];
   printf ("Introduce la cadena: ");
   gets (cadena);
   k=strlen (cadena);
   printf ("long: %d",k);
   puts("\n");
   for (i=0;i<k;i++)
       {
           if (cadena[i]==' ')
               k--;
       }
   printf ("long: %d",k);
   return 0;
}

Saludos!.
P.D:El problema en el código de 0xDani es que el primer caracter sea un espacio en blanco, entonces el if se queda en un bucle cerrado.
#1167
Programación C/C++ / Re: ejercicio matrices c
9 Noviembre 2012, 21:04 PM
Cita de: howaboutno en  9 Noviembre 2012, 15:13 PM
sigo sin entenderlo...
CitarLo que hago es crear una nueva matriz con el intercambio de las filas, así no pierdo la matriz inicial. Eso es porque presupongo que se va a "hacer" otras cosas con la matriz inicial, como cambiar diagonales, obtener la simétrica sumar o restar, etc. Por ejemplo:
Código (cpp) [Seleccionar]
#include <stdio.h>
#define TAM 4
#include <time.h>
int i,j;
int main()
{
    int fila1,fila2,temp1,temp2,a[TAM][TAM],b[TAM][TAM],c[TAM][TAM],d[TAM][TAM],e[TAM][TAM];
    srand(time(0));
    generar_matriz (a);
    imprimir (a);
/**********  cambio fila primera ultima  **********/
    copia_matriz (a,b);
    puts ("cambio fila primera ultima\n");
    for (j=0;j<TAM;j++)
            {
                temp1=b[0][j];
                temp2=b[TAM-1][j];
                b[TAM-1][j]= temp1;
                b[0][j]= temp2;
            }
    imprimir (b);
/****************  cambio filas ***************/
    copia_matriz (a,e);
    puts ("cambio filas\n");
    printf ("Numero de fila1: ");
    scanf ("%d",&fila1);
    printf ("Numero de fila2: ");
    scanf ("%d",&fila2);
    puts ("\n");
    for (j=0;j<TAM;j++)
            {
                temp1=e[fila1-1][j];
                temp2=e[fila2-1][j];
                e[fila2-1][j]= temp1;
                e[fila1-1][j]= temp2;
            }
    imprimir (e);
/*************  cambio diagonales   *****************/
    copia_matriz (a,c);
    puts ("cambio diagonales\n");
    for (i=0;i<TAM;i++)
        {
            temp1=c[i][i];
            temp2=c[i][TAM-1-i];
            c[i][TAM-1-i]= temp1;
            c[i][i]= temp2;
        }
    imprimir (c);

/*************  matriz simetrica   *****************/
    copia_matriz (a,d);
    puts ("matriz simetrica\n");
    for (i=0;i<TAM;i++)
        for (j=0;j<TAM && j<i;j++)
            {
                temp1=d[i][j];
                temp2=d[j][i];
                d[j][i]= temp1;
                d[i][j]= temp2;
            }
      imprimir (d);
      return 0;
}
/**************************************************/
int generar_matriz (int a[][TAM])
    {
        for (i=0;i<TAM;i++)
       {
          for (j=0;j<TAM;j++)
              {
                 /* printf("a[%d][%d]= ",i,j);
                scanf("%d",&a[i][j]);*/
                a[i][j]=rand() % 10 ;
              }
       }
    }

/**************************************************/

int imprimir (int a[][TAM])
{
    int i,j;
    for (i=0;i<TAM;i++)
        {
            for (j=0;j<TAM;j++)
                {
                     printf("%d  ",a[i][j]);
                }puts("\n");
        }puts("\n");
}
/**************************************************/
int   copia_matriz (int matriz1[][TAM],int matriz2[][TAM])
{
    int i,j;
    for (i=0;i<TAM;i++)
        {
            for (j=0;j<TAM;j++)
                {
                     matriz2[i][j]=matriz1[i][j];
                }
        }
}
/**************************************************/

CitarSi sólo quieres cambiar las filas y punto el código de cypascal te vale.
Saludos!.
#1168
CitarREEDITDO "maestro". Eso pasa por querer "aprovechar" lo ya hecho por otro y no estar al loro.
Saludos!. ..... y ¿qué pasa con el "otro" sitio?
#1169
CitarMenudo desastre de código  ;D ;D ;D.
A ver si era esto lo que querías:
REEDITO LOS INDICES A CERO
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
/*PROGRAMA QUE CREA UNA MATRIZ A Y UNA MATRIZ B; DA 4 OPCIONES: SUMAR, RESTAR (A - B), RESTAR (B - A) Y TERMINAR PROGRAMA*/
int main(int argc, char *argv[])
{
   int x, y, matrizA[10][10], matrizB[10][10], matrizR[10][10], RA, CA, RB, CB, O;
   printf("Cuantas lineas quiere que tenga la matriz A: ");
   scanf("%d", &RA);
   printf("\nCuantas columnas quiere que tenga la matriz A: ");
   scanf("%d", &CA);
   printf("\nCuantas lineas quiere que tenga la matriz B: ");
   scanf("%d", &RB);
   printf("\nCuantas columnas quiere que tenga la matriz B: ");
   scanf("%d", &CB);

   /*SE GENERA LA MATRIZ A*/

   for (x=0; x<RA; x++)
       {
           for (y=0; y<CA; y++)
               {
                   matrizA[x][y] = rand()%10;
               }
       }



   printf("\n");
   /*SE GENERA LA MATRIZ B*/

   for (x=0; x<RB; x++)
       {
           for (y=0; y<CB; y++)
               {
                   matrizB[x][y] = rand()%10;
               }

       }
   while (1){
   system("pause");
   system("cls");
   printf("\nMATRIZ A\n\n");
   for (x=0; x<RA; x++)
       {
           for (y=0; y<CA; y++)
               {
                   printf("%d   ", matrizA[x][y]);
               }printf("\n");
           printf("\n\n");
       }
   printf("MATRIZ B\n\n");
   for (x=0; x<RB; x++)
       {
           for (y=0; y<CB; y++)
               {
                   printf("%d   ", matrizB[x][y]);

               }printf("\n");
       }
           printf("\n\n");
   /*SE ELIGE LA OPERACION*/
   printf("1.-SUMA\n\n2.-RESTA (A - B)\n\n3.-RESTA (B - A)\n\n4.-TERMINAR APLICACION\n\n");
   printf("QUE OPERACION DESEA REALIZAR: ");
   scanf("%d", &O);
   /*SE HACE LA OPERACION ELEGIDA*/
   switch (O)
   {
       /*SUMA*/
         case 1:
         if (RA!=RB || CA!=CB)
           {
               printf("\nNO SE PUEDEN SUMAR MATRICES DE DISTINTO ORDEN\n\n");
               break;
           }
         else
           {
               printf("\nMATRIZ RESULTANTE\n\n");
               for (x=0; x<RB; x++)
                   {
                     for (y=0; y<CB; y++)
                       {
                           matrizR[x][y]=matrizA[x][y]+matrizB[x][y];
                           printf("%d   ",  matrizR[x][y]);
                       }printf("\n");
                 }
               printf("\n\n");
               break;
           }
       /*RESTA (A - B)*/
         case 2:
         if (RA!=RB || CA!=CB)
           {
             printf("\nNO SE PUEDEN RESTAR MATRICES DE DISTINTO ORDEN\n\n");
             break;
           }
         else
           {
             printf("\nMATRIZ RESULTANTE\n\n");
             for (x=0; x<RB; x++)
               {
                 for (y=0; y<CB; y++)
                   {
                        matrizR[x][y]=matrizA[x][y]-matrizB[x][y];
                        printf("%d   ",  matrizR[x][y]);
                   }printf("\n");
               }
           printf("\n\n");
           break;
           }

       /*RESTA (B - A)*/
         case 3:
         if (RA!=RB || CA!=CB)
           {
             printf("\nNO SE PUEDEN RESTAR MATRICES DE DISTINTO ORDEN\n\n");
             break;
           }
         else
           {
             printf("\nMATRIZ RESULTANTE\n\n");
             for (x=0; x<RB; x++)
               {
                 for (y=0; y<CB; y++)
                   {
                        matrizR[x][y]=matrizB[x][y]-matrizA[x][y];
                        printf("%d   ",  matrizR[x][y]);
                   }printf("\n");
               }
             printf("\n\n");
             break;
           }

         case 4:
         system("pause");
         return 0;
         break;
       }
   }
     return 0;
}
CitarAunque a mí me gusta más así:
Saludos!.
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
/*PROGRAMA QUE CREA UNA MATRIZ A Y UNA MATRIZ B; DA 4 OPCIONES: SUMAR, RESTAR (A - B), RESTAR (B - A) Y TERMINAR PROGRAMA*/
int main(int argc, char *argv[])
{
   int x, y, matrizA[10][10], matrizB[10][10], matrizR[10][10], RA=0, CA=0, RB=1, CB=1, O;

   while (RA!=RB || CA!=CB){
       printf("Cuantas lineas quiere que tenga la matriz A: ");
       scanf("%d", &RA);
       printf("\nCuantas columnas quiere que tenga la matriz A: ");
       scanf("%d", &CA);
       printf("\nCuantas lineas quiere que tenga la matriz B: ");
       scanf("%d", &RB);
       printf("\nCuantas columnas quiere que tenga la matriz B: ");
       scanf("%d", &CB);
       if (RA!=RB || CA!=CB) printf ("Han de tener las mismas lineas y columnas\npara sumar o restar\n");
}
   /*SE GENERA LA MATRIZ A*/

   for (x=0; x<RA; x++)
       {
           for (y=0; y<CA; y++)
               {
                   matrizA[x][y] = rand()%10;
               }
       }
   printf("\n");
   /*SE GENERA LA MATRIZ B*/
   for (x=0; x<RB; x++)
       {
           for (y=0; y<CB; y++)
               {
                   matrizB[x][y] = rand()%10;
               }
       }
   while (1){
   system("pause");
   system("cls");
   printf("\nMATRIZ A\n\n");
   for (x=0; x<RA; x++)
       {
           for (y=0; y<CA; y++)
               {
                   printf("%d   ", matrizA[x][y]);
               }printf("\n");
           printf("\n\n");
       }
   printf("MATRIZ B\n\n");
   for (x=0; x<RB; x++)
       {
           for (y=0; y<CB; y++)
               {
                   printf("%d   ", matrizB[x][y]);

               }printf("\n");
       }
           printf("\n\n");
   /*SE ELIGE LA OPERACION*/
   printf("1.-SUMA\n\n2.-RESTA (A - B)\n\n3.-RESTA (B - A)\n\n4.-TERMINAR APLICACION\n\n");
   printf("QUE OPERACION DESEA REALIZAR: ");
   scanf("%d", &O);
   /*SE HACE LA OPERACION ELEGIDA*/
   switch (O)
   {
       /*SUMA*/
         case 1:

               printf("\nMATRIZ RESULTANTE\n\n");
               for (x=0; x<RB; x++)
                   {
                     for (y=0; y<CB; y++)
                       {
                           matrizR[x][y]=matrizA[x][y]+matrizB[x][y];
                           printf("%d   ",  matrizR[x][y]);
                       }printf("\n");
                 }
               printf("\n\n");
               break;

       /*RESTA (A - B)*/
           case 2:
           printf("\nMATRIZ RESULTANTE\n\n");
             for (x=0; x<RB; x++)
               {
                 for (y=0; y<CB; y++)
                   {
                        matrizR[x][y]=matrizA[x][y]-matrizB[x][y];
                        printf("%d   ",  matrizR[x][y]);
                   }printf("\n");
               }
           printf("\n\n");
           break;


       /*RESTA (B - A)*/
           case 3:
           printf("\nMATRIZ RESULTANTE\n\n");
             for (x=0; x<RB; x++)
               {
                 for (y=0; y<CB; y++)
                   {
                        matrizR[x][y]=matrizB[x][y]-matrizA[x][y];
                        printf("%d   ",  matrizR[x][y]);
                   }printf("\n");
               }
             printf("\n\n");
             break;
           case 4:
           system("pause");
           return 0;
           break;
       }
   }
     return 0;
}
#1170
Programación C/C++ / Re: ejercicio matrices c
9 Noviembre 2012, 12:16 PM
Cita de: howaboutno en  9 Noviembre 2012, 10:58 AM
como se haría para intercambiar filas? no entiendo..
CitarPor ejemplo, si quisieras cambiar la primera fila por la última sería:
Código (cpp) [Seleccionar]
puts ("cambio fila primera ultima\n");
    for (j=0;j<TAM;j++)
            {
                temp1=b[0][j];
                temp2=b[TAM-1][j];
                b[TAM-1][j]= temp1;
                b[0][j]= temp2;
            }

CitarTodo es jugar con los subídices cero y TAM-1; para cabiar la 3ª fila por la 5ª serían esos valores 2 y 4 en lugar de cero y TAM-1.
Saludos!.