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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11
21  Programación / Programación C/C++ / Re: Ayuda con codigo de banco en: 9 Mayo 2018, 04:44 am
En la creacion de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos que serian muy dificil de describir en los tipos de datos primitivos, esta es la situacion en la que debemos aprovecharnos de las caracteristicas que hacen al lenguaje C especial, o sea el uso de estructuras y punteros.

Una estructura contiene varios datos. La forma de definir una estructura es haciendo uso de la palabra clave struct. Aqui hay ejemplo de la declaracion de una estructura:

Código
  1. struct mystruct{
  2.      int int_member;
  3.      double double_member;
  4.      char string_member[25];
  5. } variable;
  6.  

esto es algo que podemos utilizar para mejorar el codigo

Código
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3.  
  4. #define p printf
  5. #define cls system("cls");
  6.  
  7. const int max = 3;
  8.  
  9. typedef struct{
  10. char nombre[20];
  11. char fecha[20];
  12. char numero[20];
  13. float saldo;
  14. }_persona;
  15.  
  16. void agregar(_persona* personas);
  17. void mostrar(const _persona* personas);
  18.  
  19.  
  20. int main(int argc, char* argv[]){
  21. int op, opc=0;
  22. _persona personas[max];
  23. do{
  24. cls;
  25. p("1.Agregar saldos\n");
  26. p("2.-Ver saldos\n");
  27. p("3.-Buscar Saldos\n");
  28. p("4.-Modificar saldos\n");
  29. p("5.-Salir\n");
  30. p("Que opcion desea ejecutar?\n ");
  31. scanf("%d",&op);
  32.  
  33. switch(op){
  34. case 1:
  35. agregar(personas);
  36. break;
  37. case 2:
  38. mostrar(personas);
  39. break;
  40. case 3:
  41. p("Ha elegido Modificar saldos...\n");
  42. p("Digite el numero de cuenta sobre el cual desea modificar los datos");
  43. break;
  44. }
  45. }while(opc != 5);
  46. }
  47.  
  48. void agregar(_persona* personas){
  49. cls;
  50. int i;
  51. for(i=0; i<max; i++){
  52. p("Digite su nombre: ");
  53. fflush(stdin);
  54. scanf("%s", personas[i].nombre);
  55. p("Digite su num. de cuenta: ");
  56. fflush(stdin);
  57. scanf("%s", personas[i].numero);
  58. p("Digite la fecha(dd-mm-aaaa)");
  59. fflush(stdin);
  60. scanf("%s", personas[i].fecha);
  61. p("Digite el primer saldo:%c",36);
  62. fflush(stdin);
  63. scanf("%f",&personas[i].saldo);
  64. p("Su primer saldo es de: %c%.2f\n",36,personas[i].saldo);
  65. }
  66. }
  67.  
  68. void mostrar(const _persona* personas){
  69. cls;
  70. int i;
  71. p("Ha elegido ver los saldos...\n");
  72. for(i=0; i<max; i++){
  73. p("Nombre: %s \n",personas[i].nombre);
  74. p("Numero de cuenta %s \n:",personas[i].numero);
  75. p("Su saldo es de: %c%.2f\n",36,personas[i].saldo);
  76. }
  77. }
  78.  
  79.  

explicacion del codigo:

en la linea 7 defino una constante que determinara la longitud de mi array
Código
  1. const int max = 3;

de la linea 9 a la 14 definimos la estructura de datos que utilizaremos como un nuevo tipo de variable
Código
  1. typedef struct{
  2. char nombre[20];
  3. char fecha[20];
  4. char numero[20];
  5. float saldo;
  6. }_persona;
  7.  

en la linea 22 usamos nuestra nueva variable y la hacemos un array
Código
  1. _persona personas[max];// variable de tipo _persona
  2.  

en las funciones agregar y mostrar es algo que ya sabes como se hace creo...
22  Programación / Programación C/C++ / Re: Error en C, 20[Error] parameter 'e' is initialized en: 9 Mayo 2018, 04:11 am
en la implementacion de la función te dejas la apertura del bloque de código
Código
  1. int cuentav(char *s)
  2.  

cuando debería ser ha si

Código
  1. int cuentav(char *s){
  2.  
23  Programación / Programación C/C++ / Re: Ayuda con codigo de banco en: 9 Mayo 2018, 04:07 am
en cada caso te falto poner al final los break,
el caso es que hay que mejorar el código ya que de la forma en que esta implementado es fácil equivocarse
24  Programación / Programación C/C++ / Re: Ayuda con codigo de banco en: 9 Mayo 2018, 03:44 am
primero tenemos que arreglar el código trata de explicarme que es lo que intentas hacer con lo que ya tienes echo
25  Programación / Programación C/C++ / Re: Ayuda con programa que determine los numeros primos en un rango a,b en C en: 9 Mayo 2018, 03:37 am
pon tu código y tus dudas para que podamos ayudarte
26  Programación / Programación C/C++ / Re: ayuda !! no entiendo porque al ejecutarse a mitad se cierra la ventana en: 6 Mayo 2018, 21:59 pm
linea 24 falta mandar la variable por referencia

Código
  1. scanf("%f",emp[e].salario);
  2.  
27  Programación / Programación C/C++ / Re: suma de dos matrices dinamicas con punteros en: 4 Mayo 2018, 21:24 pm
solo tienes que utilizar la funcion void *malloc(size_t size) para reservar la memoria y void free(void *ptr) para liberarla

ejemplo

Código
  1. int* filas = (int*)malloc(sizeof(int)*num);// reservamos memoria
  2.  int i;
  3.  for(i=0; i<num; i++){
  4.    filas[i] = i+1;
  5.  }
  6.  free(filas);//liberamos memoria
  7.  


28  Programación / Programación C/C++ / Re: Convertir string de minusculas a mayusculas en C en: 27 Abril 2018, 04:01 am
en realidad para pasar a mayúsculas usando el código ascii hay que restarle 32 ya que esa es la la separación que tiene la 'A'(65) de la 'a'(67)

puedes hacer una función que se que se llame upper(char* str) que reciba un string y le reste 32  a cada carácter luego puedes tratar los casos especiales como son los acentos y la ñ en la misma función claro
29  Programación / Programación C/C++ / Re: problema con un arreglo :c en: 22 Abril 2018, 04:44 am
tu método de ordenamiento esta mal implementado

Código
  1. void ordenar(){
  2.    for(j = 0; j <4; j++){
  3.        for(i = 0; i < 4-j; i++){
  4.    if(v[i] > v[i+1]){
  5.        aux = v[i+1];
  6. v[i+1] = v[i];
  7. v[i] = aux;
  8.    }
  9.        }
  10.    }
  11. }
  12.  
30  Programación / Programación C/C++ / Re: invertir el número entero en: 21 Abril 2018, 04:17 am
este es el método que yo he utilizado

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int eleva10(int expo);
  5.  
  6. int main(int argc, char *argv[]) {
  7. int num, aux, digitos, i;
  8. int* inverso = NULL;
  9.  
  10. aux = 1;
  11. digitos = 1;
  12.  
  13. fprintf(stdout, "introduzca un numero: ");
  14. fscanf(stdin, "%d", &num);
  15.  
  16. while((aux*=10) < num) digitos++;
  17. inverso = (int*) malloc(digitos*sizeof(int));
  18.  
  19. aux = num;
  20. for(i=digitos; i>0; i--){
  21. inverso[i-1] = aux/eleva10(i);
  22. aux %= eleva10(i);
  23. }
  24.  
  25. for(i=0; i<digitos; i++){
  26. fprintf(stdout, "%d", inverso[i]);
  27. }
  28.  
  29. return 0;
  30. }
  31.  
  32. int eleva10(int expo){
  33. int ret = 1;
  34. if(expo == ret) return ret;
  35. for(int i=0; i<expo-1; i++) ret *= 10;
  36. return ret;
  37. }
  38.  

he creado la función int eleva10(int expo)porque la pow no me funciona bien XD
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines