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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Problema con mostrar listado en: 16 Noviembre 2017, 06:49 am
Hola a todos, bueno mi problema es el siguiente y es que al ingresar N variables al mostrar el listado me sale infinitas veces como si al valor N lo tomase como otro numero y no se  a que se debe el problema si ya aplique el rewind y el fread.

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. typedef char cadena [50];
  6.  
  7.  
  8. struct registro
  9.  
  10. {
  11. int numcount;
  12. cadena type;
  13. float saldo;
  14. };
  15.  
  16. void charge(int n, registro reg, FILE*archi)
  17. {
  18. int com1, com2, com3, com4, com5, com6, com7, com8;
  19.  
  20. cadena cad1 = "c";
  21. cadena cad2 = "C";
  22. cadena cad3 = "a";
  23. cadena cad4 = "A";
  24. cadena cad5 = "t";
  25. cadena cad6 = "T";
  26. cadena cad7 = "s";
  27. cadena cad8 = "S";
  28.  
  29. for(int i=0; i<n ;i++)
  30. {
  31. printf("\n**REGISTRO NRO: %d**",i+1);
  32. printf("\nIngrese NRO de cuenta: "); scanf("%d",&reg.numcount);
  33. printf("\nIngrese TIPO de cuenta: "); _flushall();gets(reg.type);
  34. printf("\nIngrese saldo previo: "); scanf("%f",&reg.saldo);
  35.  
  36. com1 = strcmp(reg.type,cad1);
  37. com2 = strcmp(reg.type,cad2);
  38. com3 = strcmp(reg.type,cad3);
  39. com4 = strcmp(reg.type,cad4);
  40. com5 = strcmp(reg.type,cad5);
  41. com6 = strcmp(reg.type,cad6);
  42. com7 = strcmp(reg.type,cad7);
  43. com8 = strcmp(reg.type,cad8);
  44.  
  45. if (com1 == 0 || com2 == 0)
  46. {
  47. printf("\nCUENTA CORRIENTE");
  48. }
  49. if (com3 == 0 || com4 == 0)
  50. {
  51. printf("\nCAJA DE AHORRO");
  52. }
  53. if (com5 == 0 || com6 == 0)
  54. {
  55. printf("\nPLAZO FIJO 30 DIAS");
  56. }
  57. if (com7 == 0 || com8 == 0)
  58. {
  59. printf("\nPLAZO FIJO 60 DIAS");
  60. }
  61. fwrite(&reg,sizeof(reg),1,archi);
  62. }//for
  63. }
  64.  
  65. void show(int n, registro reg, FILE *archi, float &ns)
  66. {
  67. int com1, com2, com3, com4, com5, com6, com7, com8;
  68. cadena cad1 = "c";
  69. cadena cad2 = "C";
  70. cadena cad3 = "a";
  71. cadena cad4 = "A";
  72. cadena cad5 = "t";
  73. cadena cad6 = "T";
  74. cadena cad7 = "s";
  75. cadena cad8 = "S";
  76.  
  77. system ("cls");
  78. printf("\nSE MOSTRARA LA LISTA DE LOS DATOS\n");
  79. system ("pause");
  80.  
  81. rewind(archi);
  82. fread(&reg, sizeof(reg),1,archi);
  83.  
  84. while (!feof(archi))
  85. {
  86. printf("\nNRO DE CUENTA: %d", reg.numcount);
  87. printf("\nTIPO: ");puts(reg.type);
  88.  
  89. com1 = strcmp(reg.type,cad1);
  90. com2 = strcmp(reg.type,cad2);
  91. com3 = strcmp(reg.type,cad3);
  92. com4 = strcmp(reg.type,cad4);
  93. com5 = strcmp(reg.type,cad5);
  94. com6 = strcmp(reg.type,cad6);
  95. com7 = strcmp(reg.type,cad7);
  96. com8 = strcmp(reg.type,cad8);
  97.  
  98. if (com1 == 0 || com2 == 0)
  99. {
  100. ns = reg.saldo;
  101. printf("\nSaldo actual: %.2f", ns);
  102. }
  103. else
  104. {
  105. if (com3 == 0 || com4 == 0)
  106. {
  107. ns = reg.saldo + (reg.saldo*0.03);
  108. printf("\nSaldo actual: %.2f", ns);
  109. }
  110. else
  111. {
  112. if (com5 == 0 || com6 == 0)
  113. {
  114. ns = reg.saldo + (reg.saldo*0.05);
  115. printf("\nSaldo actual: %.2f", ns);
  116. }
  117. else
  118. {
  119. if (com7 == 0 || com8 == 0)
  120. {
  121. ns = reg.saldo + (reg.saldo*0.09);
  122. printf("\nSaldo actual: %.2f", ns);
  123. }
  124. }
  125.    }
  126.    }
  127.    fread(&reg,sizeof(reg),1,archi);
  128. }
  129. }
  130.  
  131. main()
  132. {
  133. FILE *archi;
  134. int n;
  135. registro reg;
  136. float ns = 0.0;
  137.  
  138. archi = fopen("account.dat", "w+b");
  139.  
  140. if(archi = NULL)
  141. {
  142. printf("\nLo sentimos, el archivo no existe");
  143. system ("PAUSE");
  144. exit(1);
  145. }
  146. printf ("\nIngrese la N cantidad de archivos ");scanf("%d", &n);
  147.  
  148. charge(n,reg,archi);
  149. show(n,reg,archi,ns);
  150.  
  151. fclose(archi);
  152.  
  153. }

como siempre espero su ayuda, Saludos!.
2  Programación / Programación C/C++ / Re: Ayuda con esto. en: 16 Noviembre 2017, 06:45 am
Ese era el problema jajaja, Muchas gracias por la ayuda!
3  Programación / Programación C/C++ / Ayuda con esto. en: 2 Noviembre 2017, 23:57 pm
Buenas a todos! Pues mi problema con el C es el tema de archivos, en el ejercicio que tengo me piden que halle la media de los numeros ingresados pero al compilar me da el resultado 0.
Este es el código.

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5.  
  6. void ValoryProm (FILE *Archivo)
  7. {
  8. int N=0 , ent=0, suma = 0;
  9. int promed =0, other = 0;
  10. float promedio = 0.0;
  11.  
  12. printf("Ingrese la cantidad de valores que desea ingresar: \n");scanf("%d", &N);
  13.  
  14. for(int i=0; i<N;i++)
  15. {
  16.  
  17. printf("Ingrese valores enteros entre 10-130: \n");
  18. scanf("%d", &ent);
  19. fwrite(&ent, sizeof(int), 1, Archivo);
  20.  
  21. if(ent >= 12 && ent <= 15 || ent >=50 && ent<=111)
  22. {
  23. promed ++;
  24. }
  25. else
  26. {
  27. other++;
  28. }
  29. suma+=ent;
  30. }
  31. promedio = promed*100/N;
  32. printf("El promedio es: %.2f\n", promedio);
  33. }
  34.  
  35. float Media(FILE* Archivo, int N)
  36. {
  37. float media = 0.0;int suma;
  38.  
  39. media = (float)suma/N;
  40.  
  41. return media;
  42. }
  43.  
  44. main()
  45. {
  46. FILE *Archivo;
  47. float media;
  48. float Promedio = 0.0;
  49. int N = 0;
  50.  
  51.  
  52. Archivo = fopen("numeros.DAT","w+b");
  53.  
  54.  if (Archivo == NULL)
  55.  {
  56.    printf("Error. \n");
  57.    exit(1);          
  58.  }
  59.  
  60.  ValoryProm(Archivo);
  61.  
  62.  media = Media(Archivo, N);
  63.  printf("La media de los resultados es: %.2f", media);
  64.  fclose(Archivo);
  65.  printf("\n\n");
  66.  system("pause");      
  67.  
  68. }

Espero su ayuda, saludos.
4  Programación / Programación C/C++ / No me compila el for en C en: 30 Septiembre 2017, 06:43 am
Holas a todos, espero que esten bien, mi siguiente problema es que al compilar el programa solamente me muestra lo primero pero lo que son los for lo omite finalizando el programa.



este es el código

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. typedef char cadena[50];
  6.  
  7. struct RegistroFecha
  8. {
  9. int day;
  10. int month;
  11. int year;
  12.  
  13. };
  14.  
  15. struct RegistroEmpleado
  16. {
  17. int   legajo;
  18. cadena apynom;
  19. cadena cargo;
  20. float sueldo;
  21. RegistroFecha ingreso;
  22. RegistroFecha born;
  23. };
  24.  
  25. const int employer = 10;
  26.  
  27. main()
  28. {
  29. int N=0;
  30. RegistroEmpleado vec[employer];
  31. printf("\nIngrese la cantidad de empleados: ");scanf("%d",&N);
  32.  
  33. for(int i=0;N<=i;i++)
  34. {
  35. system("cls");
  36. printf("\nEmpleado Nro %d", i+1);
  37. printf("\nLegajo: ");scanf("%d",&vec[i].legajo);
  38. printf("\nApellido y nombre: "); _flushall();gets(vec[i].apynom);
  39. printf("\nCargo: "); _flushall();gets(vec[i].cargo);
  40. printf("\nSueldo: ");scanf("%f",&vec[i].sueldo);
  41. printf("\n**Fecha de ingreso**: ");
  42. printf("\nDia: ");scanf("%d",&vec[i]. ingreso.day);printf(" Mes: ");scanf("%d",&vec[i].ingreso.month);printf(" A%co");scanf("%d",&vec[i].ingreso.year);
  43. printf("\n**Fecha de nacimiento**: ");
  44. printf("\nDia: ");scanf("%d",&vec[i]. born.day);printf(" Mes: ");scanf("%d",&vec[i].born.month);printf(" A%co");scanf("%d",&vec[i].born.year);
  45. }
  46.  
  47. for(int i=0;N<=i;i++)
  48. {
  49. printf("\nEmpleado Nro %d", i+1);
  50. printf("\nLegajo: ",vec[i].legajo);
  51. printf("\nApellido y nombre:" ,vec[i].apynom);
  52. printf("\nCargo: ",vec[i].cargo);
  53. printf("\nSueldo: ",vec[i].sueldo);
  54. printf("\n**Fecha de ingreso**: ");
  55. printf("\n%d/%d/%d" ,vec[i]. ingreso.day,vec[i].ingreso.month,vec[i].ingreso.year);
  56. printf("\n**Fecha de nacimiento**: ");
  57. printf("\n%d/%d/%d" ,vec[i]. born.day,vec[i].born.month,vec[i].born.year);
  58. }
  59. printf("\n\n");
  60. system("pause");  
  61. }

Espero su ayuda, saludos cordiales.
5  Programación / Programación C/C++ / Re: Problema con mostrar elementos de la matriz en: 10 Septiembre 2017, 18:21 pm
Hola, muchas gracias por ayudarme. Aunque tambien quería saber cual era mi problema, me he fijado en algunos ejercicios mios y me he dado cuenta de un pequeño detalle y lo que me faltaba era declarar el & en las variables M y N.

Osea, que de así:
Código:
void charge(int matriz[50][50],int M,int N);
void show(int matriz[50][50],int M,int N;

quedaría así:
Código:
void charge(int matriz[50][50],int &M,int &N);
void show(int matriz[50][50],int &M,int &N;

Pido disculpas por no darme cuenta antes, pero igual gracias por la ayuda.
6  Programación / Programación C/C++ / Problema con mostrar elementos de la matriz en: 10 Septiembre 2017, 06:09 am
Buenos días a todos/as, soy nuevo en este foro y tambien en el mundo de la programación C. Pues tengo un problema con mostrar la matriz en una funcion void, ya que al compilar solamente me muestra la primera función pero la segunda solo el printf del comienzo y lo demás no aparece, quisiera saber cual es el problema. Este
 Como veran este el código, por lo cual nose a que se debe esto.

Código:
#include<stdio.h>
#include<stdlib.h>

void charge(int matrix[50][50], int M, int N);
void show(int matrix[50][50], int M, int N);
 main(void)
{
int matriz[50][50], M, N;

charge(matriz,M,N);
show(matriz, M, N);
}
void charge(int matrix[50][50], int M, int N)
{
   int i, j;
   printf("\n**INGRESE NRO DE FILAS **:\n");scanf("%d",&M);
   printf("\n**INGRESE NRO DE COLUMNAS**:\n");scanf("%d",&N);
   for(j=0;j<M;j++)
   {
    for(i=0;i<N;i++)
    {
    printf("\n**INGRESE UN VALOR SUPERIOR A CERO [%d][%d]**:\n",i,j);scanf("%d",&matrix[j][i]);   
}//for(i)
   }//for(J)
}//void

void show(int matrix[50][50], int M, int N)

{
   int i, j;
   
   printf("\n***MATRIZ MXN***\n");
   for(j=0;j<M;j++)
   {
    for(i=0;i<N;i++)
    {
    printf("|%d|", matrix[j][i]);
}//for(i)
printf("\n");
   }//for(J)
}//void

Espero su ayuda! Saludos cordiales!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines