elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31
181  Programación / Programación C/C++ / Re: Problema con Funciones en C en: 17 Agosto 2011, 10:19 am
Hola

en C que yo sepa si se pueden pasar los parámetros por referencia

En C no se pueden pasar parámetros por referencia como en C++ utilizando &, para hacerlo hay que pasar un puntero y modificar el valor al que apunta, pongo un ejemplo con este ejercicio

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. /*
  6.  * Función que calcula el descuento y el subtotal de un producto a partir de su precio unitario y la cantidad introducida
  7.  * Devuelve 1 si existe el producto, 0 en caso contrario
  8.  */
  9. int listado(char palabra[], float, int, float*, float*);
  10.  
  11. int main()
  12. {
  13.    int cant;
  14.    float precio, *desc, *subtotal;
  15.    char palabra[6];
  16.  
  17.    desc = (float*)malloc(sizeof(float));
  18.    subtotal = (float*)malloc(sizeof(float));
  19.  
  20.    printf("Ingrese nombre del producto:");
  21.    fgets(palabra, 6, stdin);
  22.    printf("Ingrese precio unitario:");
  23.    scanf("%f", &precio);
  24.    printf("Ingrese cantidad necesitada:");
  25.    scanf("%d", &cant);
  26.  
  27.    if(listado(palabra, precio, cant, desc, subtotal) == 1)
  28.        printf("| Producto: %s \t\n| Cantidad: %d \t\n| P.unitario: %0.2f \t\n| Descuento: %0.2f \t\n| Subtotal: %0.2f \t\n", palabra, cant, precio, *desc, *subtotal);
  29.    else
  30.        printf("ERROR");
  31.  
  32.    free(desc);
  33.    free(subtotal);
  34.  
  35.    return 0;
  36. }
  37.  
  38.  
  39. /*
  40.  * Función que calcula el descuento y el subtotal de un producto a partir de su precio unitario y la cantidad introducida
  41.  * Devuelve 1 si existe el producto, 0 en caso contrario
  42.  */
  43. int listado(char pala[6], float precio, int cant, float *desc, float *subtotal)
  44. {
  45.    if((strcmp(pala, "prod1")==0) || (strcmp(pala, "prod2")==0))
  46.        {
  47.        *desc = (precio*cant*10)/100;
  48.        *subtotal = ((precio*cant)-(*desc));
  49.        return 1;
  50.        }
  51.    else
  52.        if(strcmp(pala, "prod3")==0)
  53.            {
  54.            *desc = 0;
  55.            *subtotal = precio*cant;
  56.            return 1;
  57.            }
  58.        else
  59.            return 0;
  60.    }
  61.  

Saludos
182  Programación / Programación C/C++ / Re: triangulo problema al compilar en: 15 Agosto 2011, 15:51 pm
Hola

Sí es normal que compile, pero el compilador te lanza unos warnings avisándote

Saludos
183  Programación / Programación C/C++ / Re: triangulo problema al compilar en: 13 Agosto 2011, 21:43 pm
Hola Alien-Z

cin y cout son de C++, que se encuentran en <iostream> (no existe en C), pero printf y scanf se encuentran en <stdio.h> de C o <cstdio> de C++, por lo tanto para que tu código funcione debes incluirla o sustutuir printf por cout y scanf por cin. Otra cosa, no te acostumbres a utilizar system("pause"), procura que tu código sea estándar, léete esto que te vendrá muy bien.

Otra cosa que quería decirte es que me gusta que estructures el código con las líneas en blanco y las indentaciones, así es mucho más legible, aunque te vas hacia la derecha jajajaja.

En cuanto al código no puedo probarlo ahora mismo asíque no puedo ayudarte con eso.

Saludos



EDITO: estoy viendo que utilizas scanf("%d",&base), scanf("%d",&altura)..... cuando base y altura son de tipo float. Deberías utilizar scanf("%f",&base);
184  Programación / Programación C/C++ / Re: Problema con violación de segmento en: 26 Julio 2011, 21:42 pm
Hola

Además de que estás reservando el tamaño de un puntero

Saludos
185  Programación / Programación C/C++ / Re: Reto Universidad [C++]. en: 22 Julio 2011, 14:55 pm
num=1+rand()%(11-1);     ==>      num=1+rand()%10;   :silbar: :silbar:
186  Programación / Programación C/C++ / Re: Reto Universidad [C++]. en: 22 Julio 2011, 14:06 pm
Hola

El srand se utiliza para la generación de números aleatorios, y después rand calcula el número aleatorio. Yo lo utilizo para que el turno al principio sea aleatorio y después lo utilizo para que la máquina reste los objetos aleatoriamente, claro que como dijo antes KaL3o no tiene en cuenta el número de objetos restantes para poder ganar.

Saludos
187  Programación / Programación C/C++ / Re: triangulo numerico duda en: 22 Julio 2011, 13:38 pm
Muy bueno KaL3o, así se ve mucho más claro

Saludos bro


EDITO:

acabo de darme cuenta de un pequeño "fallo" en mi código
habría que poner:
Código
  1. cout<<i%10<<" ";
  2.  
para que si filas vale más de 9 que concuerde con los demás números, tú que crees??

Saludos
188  Programación / Programación C/C++ / Re: Reto Universidad [C++]. en: 22 Julio 2011, 13:22 pm
satu brother creo que no consideraste que la maquina siempre debe ganar

Es cierto, no me fijé en eso

Y tampoco pusiste restricción a que el usuario solo puede descontar de 1 a 3 objetos
Esto ya está corregido

Gracias por la corrección

Saludos
189  Programación / Programación C/C++ / Re: Calculadora con switch en: 22 Julio 2011, 13:15 pm
OK, te entendí mal jeje

Saludos
190  Programación / Programación C/C++ / Re: Reto Universidad [C++]. en: 22 Julio 2011, 11:54 am
Hola

Aquí lo tienes

Código
  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.    int turno, resta, num;
  9.  
  10.    srand(time(NULL));
  11.    turno = rand() % 2;
  12.  
  13.    do
  14.        {
  15.        cout << "Introduce el numero de objetos: ";
  16.        cin >> num;
  17.        }
  18.    while(num <= 0);
  19.  
  20.    while(num > 0)
  21.        {
  22.        cout << endl << "Quedan " << num << " objetos";
  23.  
  24.        if(turno)
  25.            {
  26.            do
  27.                {
  28.                cout << endl << endl << "Cuantos objetos quieres retirar? [1][2][3]: ";
  29.                cin >> resta;
  30.                }
  31.            while(resta < 1  || resta > 3);
  32.            num -= resta;
  33.            turno = 0;
  34.            }
  35.        else
  36.            {
  37.            resta = rand() % 3 + 1;
  38.            cout << endl << endl << "La maquina retira " << resta << " objetos" << endl;
  39.            num -= resta;
  40.            turno = 1;
  41.            }
  42.        }
  43.    if(turno)
  44.        cout << endl << endl << "ENHORABUENA. Has ganado :)" << endl << endl;
  45.    else
  46.        cout << endl << endl << "Has perdido :(" << endl << endl;
  47.  
  48.    cout << endl << "Pulse Enter para salir...";
  49.    while(cin.get() != '\n');
  50.    cin.get();
  51.    return 0;
  52. }
  53.  

Saludos
Páginas: 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines