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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / algun metodo alternativo al codigo que hice?? en: 28 Enero 2019, 21:28 pm
Hola, tenia que hacer un subprograma que lea letras y las incorpore a un archivo, el programa finaliza si ingreso 2 letras "a" seguidas. El codigo que hice funciona pero me parece muy engorroso, quisiera que me explicaran alguna manera alternativa que no tenga q escribir tanto codigo. gracias



#include <stdio.h>
Código
  1. #include<stdlib.h>
  2. FILE *fd;
  3. void leer_letras ();
  4.  
  5. int main(){
  6.  
  7.  
  8. leer_letras();
  9.  
  10. return 0;}
  11.  
  12. void leer_letras (){
  13. int i; char let[5];
  14. FILE *fd;
  15. char direccion[]="C:\\Users\\adria\\Downloads\\hola2.txt";
  16. fd= fopen(direccion, "w");
  17. if (fd==NULL){
  18.    printf("error");
  19.    }
  20.    for (i=0; i<5; i++){
  21. printf("\ningrese una letra: ");
  22. scanf("%c",&let[i]);
  23. fflush (stdin);
  24. fprintf(fd, "%c", let[i]);
  25.  
  26. if(let[0]=='a'&&let[1]=='a'){printf("dato no valido");
  27. exit(-1);}
  28. if(let[1]=='a'&& let[2]=='a'){printf("dato no valido");
  29. exit(-1);}
  30. if(let[2]=='a'&& let[3]=='a'){printf("dato no valido");
  31. exit(-1);}
  32. if(let[3]=='a'&& let[4]=='a'){printf("dato no valido");
  33. exit(-1);}
  34. if(let[4]=='a'&& let[5]=='a'){printf("dato no valido");
  35. exit(-1);}
  36.   }
  37.  
  38. fclose(fd);
  39.  
  40. }
  41.  
  42.  
2  Programación / Programación C/C++ / Ayuda no entiendo donde esta el error en: 8 Enero 2019, 21:06 pm
Hola necesito ayuda con este codigo, no se donde esta el error , no me genera el archivo....

//: Generar un subprograma que permita leer de teclado letras e incorporarlos a un archivo.//
//La lectura se realiza hasta que se ingresan dos letras ‘a’ seguidas. //

Código
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3. int leer_letras (int letra[]);
  4.  
  5. int main(){
  6. int let[5], i;
  7. for (i=0; i<5; i++){
  8. printf("\ningrese una letra: ");
  9. scanf("%d", &let[i]);
  10. fflush (stdin);}
  11.  
  12.  
  13. int leer_letras(int let[]);
  14.  
  15.  
  16. return 0;}
  17.  
  18. int leer_letras (int letra[]){
  19. int i;
  20. FILE *fd;
  21. fd= fopen("C:\\Users\\adria\\Downloads\\hola.txt", "wt");
  22. if (fd==NULL){
  23.    printf("error");
  24.    return 1;}
  25.  
  26.    int anterior, siguiente;
  27.    letra[0]=anterior;
  28.    siguiente= letra[1];
  29.  
  30.  
  31.    if (siguiente=="a" && anterior=="a"){
  32.        return 1;
  33.    }
  34.    else {
  35.    fputc(letra[i], fd);
  36.            }
  37.  
  38. fclose(fd);
  39. return 0;
  40.  
  41. }

MOD: Etiqueta GeSHi.
3  Programación / Programación C/C++ / ayuda con subprograma que calcule promedio de vector en: 12 Noviembre 2018, 23:26 pm
Hola necesito ayuda con este ejercicio, me da como resultado 0, no le encuentro el error al codigo


/*Generar un subprograma que permita, dado un vector de 5400 posiciones,
 obtener el promedio de los elementos del vector. Los valores del vector son enteros, y el resultado real.*/
 
 
  #include<stdlib.h>
 #include <stdio.h>
 #include<time.h>
 
 int promedio_V(int vector[], int );
 int vector[5400], i; const int tam= 5400;
 int main(){
    
    
     srand(time(0));
    
    for(i=0; i<5400; i++){
       
       vector= 1+ rand() % 100;
       
    }
       for (i=0;i<5400; i++){
    printf("\n%i", vector);}
 
 
    printf ("el promedio del vector es %.2f", promedio_V(vector,tam));
    return 0;}
    
int promedio_V(int vector[], int tam) {
   float suma=0;
   
   for (i=0; i<tam; i++){
      
      suma=(suma+ vector[tam])/5400;
      
   }
      
   return suma ;
   
}
4  Programación / Programación C/C++ / suma de los elementos mayores a 100 en un array c/Recursividad en: 19 Octubre 2018, 21:35 pm
Hola! tengo que hacer este ejercicio y no entiendo por qué no suma nada, cuando compilo me da como resultado 1. si me pueden ayudar por favor!!

/*5: Realizar una función recursiva que permita calcular la suma de los valores de un vector de 20 posiciones,
 donde cada valor es un entero. Los valores que deben sumarse son solamente aquellos que sean mayores a 100.*/
 #include<stdlib.h>
 #include <stdio.h>
 #include<time.h>
 
 int suma(int vector[], int i);
 
 int main(){
    int vector[20], i=0;
    
     srand(time(0));
    
    for(i=0; i<20; i++){
       
       vector= 1+ rand() % 300;
       
    }
    for (i=0;i<20; i++){
    printf("\n%i", vector);}
    
 printf("\nEl resultado de la suma es: %i", suma(vector, i));
 return 0;   
 }
 
 int suma(int vector[], int i){
    int  sumar=0;
    
    for (i=0;i<20; i++){
    
    if(i<100){
       return 1;
    }
    else if (i>100){
       
       return sumar= suma(vector,i-1) + vector [i-1];
    }
    }
 }
5  Programación / Programación C/C++ / ayuda con uso de fwrite actualizar fichero en c en: 4 Octubre 2018, 00:20 am
hola! tengo que actualizar un archivo en c y el profesor me dijo q pruebe con fwrite... la verdad estoy perdida porque no se como hacer para que actualice los datos q voy cargando

aca va la consigna y el codigo que estoy haciendo:

/* Dado un archivo de registros de tres campos (legajo: entero; sueldo: real; adicional: real), realizar un programa
 que permita actualizar el archivo,
de modo que el sueldo sea incrementado en 0.5 veces el adicional.
Los sueldos que se deben modificar son aquellos
que cumplan con alguna de las siguientes condiciones:
-Legajo entre 1 y 5454, y el sueldo menor a $350.
-Legajo entre 6000 y 9800, y el adicional sea menor a $200.
-Legajo mayor a 15300*/

#include <stdio.h>
#include<stdlib.h>

FILE *archivo;
struct datosempleado{
   int legajo;
   float sueldo;
   float adicional;
}datos;

void crear(){
   FILE *archivo;
   char respuesta;
   archivo= fopen("C:\\Users\\adria\\Downloads\\registros.txt", "a+t");
   if(archivo==NULL){
      printf("Error");
      return 1;
   }
   do{
   
   printf ("\nIngrese numero de legajo: ");
   scanf("%i", &datos.legajo);
   printf("\nIngrese su sueldo: ");
   scanf("%f", &datos.sueldo);
   printf("\n Ingrese su adicional: ");
   scanf("%f", &datos.adicional);
   fflush(stdin);
   fprintf(archivo, "\nNumero de Legajo: ");
   fwrite(&datos.legajo, 1, sizeof(datos.legajo), archivo);
   fprintf(archivo, "\nSueldo: ");
   fwrite(&datos.sueldo, 1, sizeof(datos.sueldo),archivo);
   fprintf(archivo, "\nAdicional: ");
   fwrite(&datos.adicional, 1, sizeof(datos.adicional),archivo);
   printf("desea agregar más datos: (s)");
      scanf ("%c",&respuesta);
   }   while(respuesta== 's');   
   fclose(archivo);
}


void Actualizar(){
   float sueldoActual;

   FILE *archivo;

   archivo= fopen("C:\\Users\\adria\\Downloads\\registros.txt", "w+");
      if(archivo==NULL){
      printf("Error");
      return 1;
   }
   else{
   
   fread(&datos, sizeof(datos),1,archivo);
   printf("%i %.2f %.2f\n", datos.legajo, datos.sueldo, datos.adicional);

   rewind(archivo);
   
      if((datos.legajo>1) && (datos.legajo<5454) && (datos.sueldo<350)){
      sueldoActual= (datos.adicional *  0.5) + datos.sueldo;
         fwrite(&datos, sizeof(datos.sueldo),1,archivo);
   }
      if((datos.legajo>6000) && (datos.legajo<9800) && (datos.adicional<200)){
      sueldoActual= (datos.adicional *  0.5) + datos.sueldo;
         fwrite(&datos, sizeof(datos.sueldo),1,archivo);
   }
      if(datos.legajo>15300){
      sueldoActual= (datos.adicional *  0.5) + datos.sueldo;
         fwrite(&datos, sizeof(datos.sueldo),1,archivo);
   }

         printf("Sueldo actual: %.2f"), sueldoActual;}
      
      fclose(archivo);
      return 0;
}

int main(){
   int opc;
   do{
      printf ("\n1. Crear Archivo de registro");
      printf ("\n2. Actualizar sueldo: ");
      printf("\n3. Salir\n");
      printf("\nIngrese opcion: ");
      scanf("%i", &opc);
      
      switch(opc){
         case 1: crear();
         case 2: Actualizar();
      }
   }
   while(opc != 3);
   
   
   return 0;
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines