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 - Blaster

#71
Cita de: honguitoSan en  5 Junio 2014, 19:40 PM
Bueno el problema es que no se utilizar bien las estructuras, el problema del programa es: "Una tienda de autos desea guardar los datos del modelo de 5 autos, crea una estructura y una función leerAuto() que lea los datos del auto y diseñe las funciones que despliegue el auto mas vendido ya sea por marca o modelo o costo"

Lo mejor en estos casos es utilizar un vector de estructuras para guardar la
información individual de cada auto, en la función que propones tu sobreescibes
cada dato anterior con la ingresada despues, el codigo quedaria asi con la
sugerencia que te he dado

#include <stdio.h>

typedef struct
{
   char modelo[20];
   char marca[20];
   int costo;
   int cantidadVendido;
}autos;

void leerAuto(autos p[]);

int main()
{
   autos DATOS[5];
   leerAuto(DATOS);

   return 0;
}
void leerAuto(autos p[])
{
   int i;
   printf("Introduce los datos de 5 automoviles\n");
   for(i = 0; i < 5; i++)
   {
       printf("\nIntroduce el %d automovil\n", i+1);
       printf("Modelo:\t");
       scanf("%s", p[i].modelo);
       printf("Marca:\t");
       scanf("%s", p[i].marca);
       printf("Costo:\t");
       scanf("%d", &p[i].costo);
       printf("Cantidad Vendida:\t");
       scanf("%d", &p[i].cantidadVendido);
   }
}


Cita de: honguitoSan en  5 Junio 2014, 19:40 PM
pero mi problema es que no tengo la mas mínima idea de como hacer que me despliegue el auto mas vendido, por favor alguien que me ayude.

Para ese proposito podrias hacer halgo asi, puedes mejorarlo bastante solo es un ejemplo

cant = p[0].cantidadVendido;
   for (i = 0; i < 5; i++){
      if (cant < p[i].cantidadVendido){
        cant = p[i].cantidadVendido;
        pos = i;
      }
   }
   printf("Modelo mas vendido es: %s\t Marca: %s\t Costo: %d",
           p[pos].modelo, p[pos].marca, p[pos].costo);


Saludos
#72
Cita de: Bob1098 en 31 Mayo 2014, 17:51 PM
En principio, el programa me funciona bien, pero no consigo solucionar que el programa ingore las mayúsculas a la hora comprobar el palíndromo. He escrito un bucle for en la función para convertir cualquier mayúscula a minúscula, pero es como si el bucle no existiera, cuando escribo un palíndromo con mayúsculas y minúsculas me dice que no lo es, pero cuando lo escribo todo en minúscula me dice que si. ¿Alguna idea?

No te funciona por que si en el caso de que la cadena se mayuscula tu la conviertes en minuscula y la guardas en la variable auxiliar y luego la comparas con la cadena original que esta en mayuscula y te retorna false ya que son diferentes

Saludos
#73
Cita de: leosansan en 22 Mayo 2014, 22:34 PM
¿Alguna sugerencia a este comportamiento del %f?.

En el modo de operar del especificador %f no hay nada estraño, debes tener encuenta que son diferentes y cada uno procesa el valor con diferente precisiónes, obten mas información al respecto en esta pagina

http://support.microsoft.com/kb/43392/es

Saludos
#74
Cita de: yoel_alejandro en 22 Mayo 2014, 18:36 PM
Bueno, traté de dar una solución con métodos elementales, ya ese era más o menos el estilo del programa originalmente presentado.

En ese caso pongo otra opción muy sencilla parecida al de yoel_alejandro

#include <stdio.h>
#include <string.h>

#define HEX "0123456789ABCDEF"

int main(void)
{
   char hex[20] = "";
   int dec = 255, temp = dec, fact = 1, resto = 0, i;

   for(; dec; fact *= 10, dec = dec / 2)
      resto += (dec % 2) * fact;
   printf("Binario: %d\n", resto);

   dec = temp, resto = 0, fact = 1;

   for(; dec; fact *= 10, dec = dec / 8)
      resto += (dec % 8) * fact;
   printf("Octal: %d\n", resto);

   dec = temp;

   for(i = 0; dec;  i++, dec = dec / 16)
      hex[i] = HEX[(dec % 16)];
   printf("Hexadecimal: %s\n", strrev(hex));

   return 0;
}


Saludos
#75
Cita de: juanma31 en 21 Mayo 2014, 23:58 PM
tu eres la completita. Estoy aprendiendo a programar en c++ y pregunto si alguien me podria ayudar. si no quieres colaborar mantente al margen

juanma31 calma por que te pones en ese plan, mi unica intención era de que pusieras un poquito de esfuerzo de tu parte para solventar el resto del ejercicio

Cita de: yoel_alejandro en 22 Mayo 2014, 03:10 AM
P.D. En mi ignorancia, no conozco una función de biblioteca de C++ que imprima directamente cadenas en reversa, si alguien la sabe que me lo diga xD

yoel_alejandro puedes usar la función std::reverse de la libreria algorithm de C++

Código (cpp) [Seleccionar]
std::reverse(resultado.begin(), resultado.end());
std::cout << resultado << endl;


Saludos
#76
Cita de: juanma31 en 21 Mayo 2014, 23:05 PM
Ademas el ejercicio dice q acepte de entrada una cadena y devuelva un número entero. Y la cadena de entrada es un string en formato "número/base".

Lo que sigue ya solo son detallitos ya se te dio un codigo funcional el cual puedes adaptarlo a tus necesidades, aqui no te van hacer la tarea completita

Saludos
#77
Solo una observación con respecto al codigo, en el for la variable i es innecesaria puedes dejarlo simplemente asi

Código (cpp) [Seleccionar]
for(; num >= 1 ; factor *= 10, num = num/bas)
   resto += (num%bas)*factor;


Saludos
#78
Cita de: spiderboot en 20 Mayo 2014, 21:06 PM
mientras se presione la letra s se pedira nuevamente un numero cualquiera para calcular sus multiplos hasta el numero 10, si se presiona cualquier otro numero el programa termina

En ese caso la condición de while debe ser esta

Código (cpp) [Seleccionar]
while(cent == 's');

Saludos
#79
Cita de: laura_55 en 19 Mayo 2014, 05:53 AM
Lo que yo intente hacer fue que según la coordenada que ingrese es el usuario (norte, sur, este, oeste) se mueva el carácter I tantas veces como lo indico el usuario. Ej si el usuario ingresa N 2, el carácter debería moverse nos espacios al norte y en su camino ir colocando el #.

Te dejo un sencillo codigo que hace exactamente lo que pides, que es mover un elemento de la matriz hacia arriba la cantidad de posiciones que el usuario indique y rellenar el hueco dejado con '#'

Código (cpp) [Seleccionar]
if (mov == 'N' && x-pasos >= 0){
  matriz[x-pasos][y] = matriz[x][y];
 for (i = 0;  i < pasos; i++ )
     matriz[x-i][y] = '#';
  }


Cita de: laura_55 en 19 Mayo 2014, 05:53 AM
Yo trate de colocar el x-- para que fuera de posición en posición y así poder ir acumulando los puntos que hace la acción puntaje. Cambien le coloque un do while para que se saliera cuando la posición de I fuera igual  a F, se saliera y me escribiera el mensaje de ha llegado y de cuanto es mi acumulado.

Que quieres hacer con estos caracteres I F  $  &  | % y con la condición de do while no entiendo a que quieres llegar

Saludos
#80
Cita de: laura_55 en 19 Mayo 2014, 04:23 AM
Mi duda es la siguiente yo quiero crear una matriz con ciertos elementos. Luego de llenarla quiero poder un elemento de mi matriz posición por posición según lo que ingrese el usuario, sea norte, sur, este, oeste, para así ir acumulando un puntaje.

Podrias explicar de forma mas clara que es lo que quieres hacer exactamente; la función Mover_posicion carece totalmente de consistencia que intentas hacer con ella

Saludos