Apostar y ganar

Click Now!

sábado, 4 de mayo de 2013

Permutaciones de x numeros en C TodoCodigos gratis


Permutaciones de numeros en c

// Permutation of n numbers
// Permutacion de n numeros
// Copyright (C) <2010> <Minguez>
// Contact: 6.minguez@gmail.com

//      This program is free software; you can redistribute it and/or modify
//      it under the terms of the GNU General Public License as published by
//      the Free Software Foundation; either version 3 of the License, or
//      (at your option) any later version.
//    
//      This program is distributed in the hope that it will be useful,
//      but WITHOUT ANY WARRANTY; without even the implied warranty of
//      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//      GNU General Public License for more details.
//    
//      You should have received a copy of the GNU General Public License
//      along with this program; If not, see <http://www.gnu.org/licenses/>

//Este programa realiza todas las permutaciones posibles de n numeros (1, 2, 3, ..., n)
//Donde n es un numeros del 1 al MAX (50)
#include <stdio.h>
#define MAX 50

int main ()
{
//definicion de variables
char n,                  //Cantidad de numeros a permutar
lista[MAX+1],            //Lista con los numeros a permutar
cont[MAX],               //Contador para calcular que permutaciones se hacen
cont1, cont2, cont3,     //Contadores para los for
buf;                     //Para realizar la permutacion de dos numeros
   

//Texto explicando al usuario lo que hace el programa
printf("\nThis program do all the permutations of n numbers (1, 2, 3, ..., n)\n");
printf("Where n is a natural number between 1 and MAX (50)\n\n");
printf("Este programa realiza todas las permutaciones de n numeros natuarales (1, 2, 3, ..., n)\n");
printf("Donde n es un numeros del 1 al MAX (50)\n\n");

//Lee la cantidad de numeros a permutar y comprueba que n esta entre 1 y MAX
printf("Write the quantity of numbers to permutate\n");
printf ("Introduzca la cantidad de numeros a permutar\n");
scanf("%d", &n);
printf("\n");
for(;n<1 || n>MAX;)
{
fflush (stdin);
printf("ERROR: Write the quantity of numbers to permutate \n\t(a natural number bettween 1 and MAX (50)\n");
printf ("ERROR: Introduzca la cantidad de numeros a permutar\n\t(un numero natural entre 1 y MAX (50)\n");
scanf("%d", &n);
printf("\n");
}

n=n+1;

//Crea la tabla para los n numeros
for (lista[0]=0,cont1=1;cont1<n;cont1++)
{
lista[(int) cont1]= lista[(int) cont1-1]+1;
}

//Crea la tabla del contador
for (cont1=0;cont1<n-1;cont1++)
{
cont[(int) cont1]=0;
}

//Escribe la permutacion de numeros inicial
for(cont1=1;cont1<n;cont1++)
{
if(lista[(int) cont1]<10 && n>10)
{
printf("0%d ", lista[(int) cont1]);
}
else
{
printf("%d ", lista[(int) cont1]);
}
}
printf("\n");

//Algoritmo que permuta los numeros y muestra todas las combinaciones menos la inicial
while (cont[0]==0)
{
for (cont1=n-2;cont1>=0;cont1--)
{
if (cont[(int) cont1]<n-cont1-1)
{
cont[(int) cont1]++;

//permuta dos numeros y muestra los numeros permutados
if(cont[0]==0)
{  
//Permuta dos numeros de la lista                
buf=lista[(int) cont1];
lista[(int) cont1]=lista[ (int)cont1+1];
lista[cont1+1]=buf;

//Escribe la permutacion resultante
for(cont2=1;cont2<n;cont2++)
{
if(lista[(int) cont2]<10 && n>10)
{
printf("0%d ", lista[(int) cont2]);
}
else
{
printf("%d ", lista[(int) cont2]);
}
}
printf("\n");
}

//Limpia la tabla del contador dejando una sola cifra distinta de 0
for (cont2=n-2;cont2>cont1;cont2--)
{
cont[(int) cont2]=0;
}

//Solucion para poner los numeros en orden siguiente
if (cont[n-2]==1 && cont[n-3]==2)
{
//Calcula el numero de elementos a permutar
for (cont2=2;cont[n-cont2-2]==cont2+1;cont2++);

//Permuta los elementos
for (cont3=1;cont3<=cont2/2;cont3++)
{
buf=lista[n-cont2+cont3-1];
lista[n-cont2+cont3-1]=lista[n-cont3];
lista[n-cont3]=buf;
}
}
break;
}
}
}
fflush (stdin);
getchar();
return 0;
}


Codigos C


jueves, 2 de mayo de 2013

C Programa de estadística basica


C
Lenguaje de programación C  estadisticas numeros


include    <iostream.h>
#include    <iomanip.h>
#include    <fstream.h>
#include    <graphics.h>
#include    <math.h>
#include    <conio.h>
#include    <stdlib.h>

const int MaxArreglo = 20;
//===========================================================================
//Definici¢n de todos los prototipos de funciones
int CapturarDatos(float *Datos);
void MarcoPresentacion();
char CaracterEstaEn(char ch, char *s);
float CalcularPromedio(float *Datos, int N);
void IntercambiarValoresDosVariables(float *a, float *b);
void ClasificarMuestraAscendentemente(float *Datos, unsigned int N);
float CalcularMediana(float *Datos, unsigned int N);
float EncontrarModa(float *Datos, int N);
float BuscarMenorYMayor(float *Datos, int N, float &mayor);
float DesviacionEstandard(float *Datos, int max);
void GraficarPorcentajes(float *Datos, int max);
void ImprimirEnImpresora(float *Datos, int max);
void LeerArchivoYCargarEnDatos(float *Datos, int &N);
void GrabarDatosEnArchivo(float *Datos, int N);
char OpcionMenu();
//===========================================================================
int CapturarDatos(float *Datos) {
int t, Max;

gotoxy(38,1);
cout << "n£mero items?(M ximo " << MaxArreglo<<"):         ";
gotoxy(66,1);
cin >> Max;
if(Max>0 && Max<=MaxArreglo){
for(t=0; t<Max; ++t) {
gotoxy(40, 2+t);
cout << "Digite n£mero real " << t+1 << ": ";
cin >> Datos[t];
}
gotoxy(40, 3+t);
cout << "Cualquier tecla y seguir..." ;
getch();
}
return Max;
}

void MarcoPresentacion(){
int indice;

window(1,1,80,25);
clrscr();
cout<<"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
cout<<"º                        EJEMPLO DE ESTADISTICA BASICA                         º";
cout<<"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
for(indice = 5; indice < 25; ++indice)
cout<<"º                                                                              º";
cout<<"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ";
window(2,7,70,23);
}

char AMayuscula(char c){  //PRUEBA DE ESCRITORIO
if(c>='a' && c<='z')
c = c - (97-65);    //convierte a may£scula si es min£scula

return c;
}

char CaracterEstaEn(char ch, char *s){  //PRUEBA ESCRITORIO
while(*s) {
if(ch == *s) return ch;
else s++;
}
return 0;
}

float CalcularPromedio(float Datos[], int N){ //PRUEBA ESCRITORIO
int t;
float Promedio=0, *P;

P = Datos;
for(t = 0; t < N; ++t){
Promedio += *P;   // Promedio = Promedio + *P; es lo mismo
P++;
}
Promedio /= N;
return Promedio;
}

float CalcularMediana(float Datos[], unsigned int N){ //PRUEBA ESCRITORIO
register int t;
float temporal[MaxArreglo];

for (t=0; t<N; ++t)
temporal[t] = Datos[t]; /* copiar Datos*/

ClasificarMuestraAscendentemente(temporal, N);
return (temporal[(N-1)/2]);
}

void IntercambiarValoresDosVariables(float *a, float *b){
float aux;

aux = *a;
*a = *b;
*b = aux;
}

void ClasificarMuestraAscendentemente(float *Datos, unsigned int N){
//PRUEBA ESCRITORIO cuando sea invocada desde la funci¢n CalcularMediana()
int i,j;
float aux;

for (i = 0; i < N; i++)
for (j = i; j < N; j++)
if (Datos[i] > Datos[j])
IntercambiarValoresDosVariables(&Datos[i], &Datos[j]);

}

float EncontrarModa(float *Datos, int N){ //PRUEBA ESCRITORIO
register int t, w;
float md, AnteriorModa;
int cont, antcont;

AnteriorModa=0;
antcont=0;
for (t=0; t< N; ++t) {
md = Datos[t];
cont = 1;
for(w=t+1; w < N; ++w)
if(md == Datos[w])
cont++;
if(cont > antcont) {
AnteriorModa = md;
antcont = cont;
}
}
return AnteriorModa;
}

float BuscarMenorYMayor(float *Datos, int N, float &mayor){//PRUEBA ESCITORIO
int t;
float menor;

menor = mayor = Datos[0];

for(t=1; t < N; ++t)
if(Datos[t] < menor)
menor = Datos[t];
else
if(Datos[t] > mayor)
mayor = Datos[t];

return menor;
}

void Mostrar(float *Datos, int Max){
register int t;
float total=0, porcentajes[MaxArreglo];

for (t = 0; t < Max; t++)
    total += Datos[t];
for (t = 0; t < Max; t++)
    porcentajes[t] =  Datos[t] / total;
for(t = 0; t < Max; ++t) {
gotoxy(32,1+t);
cout << setfill('.') << setw(2) << t+1 << setiosflags(ios::fixed)
<< setiosflags(ios::showpoint) << setiosflags(ios::right)
        << setprecision(2)  << setw(10) << Datos[t]
 << setw(10) << porcentajes[t]*100 << "%";
}
gotoxy(35,4+t); cout <<"Cualquier tecla y seguir...   "; getch();
}

float DesviacionEstandard(float *Datos, int Max){//PRUEBA ESCRITORIO
register int t;
float DesvStd=0, Promedio;
double aux;

Promedio = CalcularPromedio(Datos,Max);
for(t = 0; t < Max; ++t)
DesvStd += ((Datos[t] - Promedio) * (Datos[t] - Promedio));
if(Max) DesvStd /= Max;
DesvStd = sqrt(DesvStd);
return DesvStd;
}

void GraficarPorcentajes(float *Datos, int Max){//PRUEBA ESCRITORIO
int   ManejadorGrafico, ModoGrafico;
int  i, izquierda, arriba, ancho, abajo, profundidad;
float total=0;
float porcentajes[MaxArreglo];

if (Max){
for (i = 0; i < Max; i++)
      total += Datos[i];
for (i = 0; i < Max; i++)
      porcentajes[i] = ((float) Datos[i]) / total;

detectgraph(&ManejadorGrafico, &ModoGrafico);
initgraph(&ManejadorGrafico, &ModoGrafico, "");
ancho = (int)( (getmaxx()) / ((Max * 2 ) + 1) );
abajo = getmaxy() - 10;
profundidad = (int) (ancho / 4);
izquierda = ancho;
setbkcolor(WHITE);
for (i = 0; i < Max; i++) {
arriba = (abajo) - ((int)(porcentajes[i] * (getmaxy() - 25)));
setcolor(RED); //color de las l¡neas de cada barra
setfillstyle(i+1, i+1); //setfillstyle(tipodeRelleno, ColorRelleno)
bar3d(izquierda,arriba,(izquierda+ancho),abajo,profundidad,1);
izquierda += (ancho * 2);
}
getch();
closegraph();
MarcoPresentacion();
}
}

void ImprimirEnImpresora(float *Datos, int Max){
register int t;
float total=0, porcentajes[MaxArreglo];
ofstream Imprimir("PRN");

for (t = 0; t < Max; t++)
total += Datos[t];
for (t = 0; t < Max; t++)
porcentajes[t] =  Datos[t] / total;
gotoxy(35,4); cout <<"Imprimiendo...   ";
  Imprimir << "\n     Registro       Datos         Porcentajes \n\n";
for(t = 0; t < Max; ++t) {
Imprimir << setfill('.') <<setw(5) << t+1 << setiosflags(ios::fixed)
<< setiosflags(ios::showpoint) << setiosflags(ios::right)
          << setprecision(2)  << setw(15) << Datos[t]
<< setw(15) << porcentajes[t]*100 << "%" << endl;
}
Imprimir << "\f";
}

void LeerArchivoYCargarEnDatos(float *Datos, int &N){
int IDArchivo;
fstream Archivo;

N=0;
Archivo.open("Estadist.ica", ios::in | ios::binary);
if(Archivo){
    while(  Archivo.read( (char *)&Datos[N], sizeof(float) ) )
N++;
Archivo.close();
cout << "Le¡dos desde disco: " ;  Mostrar(Datos, N);
}
else
cout << "Archivo no existe";
}

void GrabarDatosEnArchivo(float *Datos, int N){
int i;
fstream Archivo;

Archivo.open("Estadist.ica", ios::out|ios::binary|ios::trunc);//borra archivo si existe
if (!Archivo)
cout << "Error en la apertura del archivo \a";
else{
for(i=0; i<N; i++)
Archivo.write((char *)&Datos[i], sizeof(float));

Archivo.close();
}
}

char OpcionMenu(){
char entrada;

clrscr();
do {
gotoxy( 3, 1); cout << "MENU PRINCIPAL";
gotoxy( 3, 2); cout << "==============";
gotoxy( 3, 3); cout << "Capturar Datos";
gotoxy( 3, 4); cout << "Estad¡sticas b sicas";
gotoxy( 3, 5); cout << "Ordenar de menor a mayor";
gotoxy( 3, 6); cout << "Mostrar Datos";
gotoxy( 3, 7); cout << "Graficar en barras";
gotoxy( 3, 8); cout << "Imprimir en papel";
gotoxy( 3, 9); cout << "Terminar";
gotoxy( 3,13); cout << "Elija letra inicial (C E O M G I T): ";
gotoxy(39,13); entrada = AMayuscula(getch());
} while (!CaracterEstaEn(entrada, "CEOMGIT"));
return entrada;
}

void main(){ //ESTADISTICA BASICA FUNCION PRINCIPAL
float Datos[MaxArreglo];  // almacena valores de la muestra
int N=0; //N£mero verdadero de elementos
float Promedio=0,Mediana=0,DesvStd=0, Varianza=0, Moda=0, Mayor=0, Menor=0;

MarcoPresentacion();
LeerArchivoYCargarEnDatos(Datos, N);
for(;;) {
switch( OpcionMenu() ) {
case 'C': N = CapturarDatos(Datos);
break;
case 'E': Promedio = CalcularPromedio(Datos, N);
Mediana = CalcularMediana(Datos, N);
Moda = EncontrarModa(Datos, N);
Menor = BuscarMenorYMayor(Datos, N, Mayor);
DesvStd = DesviacionEstandard(Datos, N);
Varianza = DesvStd*DesvStd;
gotoxy(30, 1); cout << "Promedio       : " << Promedio;
gotoxy(30, 2); cout << "Mediana        : " << Mediana;
gotoxy(30, 3); cout << "Desviaci¢n Std : " << DesvStd;
gotoxy(30, 4); cout << "Varianza       : " << Varianza;
gotoxy(30, 5); cout << "Moda           : " << Moda;
gotoxy(30, 6); cout << "M ximo         : " << Mayor;
gotoxy(30, 7); cout << "M¡nimo         : " << Menor;
gotoxy(30, 9); cout << "Cualquier tecla y seguir...      ";
getch();
break;
case 'M': Mostrar(Datos, N);
break;
case 'O': ClasificarMuestraAscendentemente(Datos, N);
Mostrar(Datos, N);
break;
case 'G': GraficarPorcentajes(Datos, N);
break;
case 'I': ImprimirEnImpresora(Datos, N);
break;
case 'T': GrabarDatosEnArchivo(Datos, N); exit(0);
}
}
}




martes, 30 de abril de 2013

PROGRAMA QUE GENERA UN NUMERO DETERMINADO DE NUMEROS PRIMOS todo codigos



PROGRAMA QUE GENERA UN NUMERO DETERMINADO
DE NUMEROS PRIMOS


#include<iostream.h>
#include<stdio.h>
#include<conio.h>

int main()
{
  int n=0,c=0,c2=0,res=0,nc=0;
  cout<<"Introduce el limite de numeros: "; cin>>n;
  for(c=1;c<=n;c++)
  {
    for(c2=1;c2<=c;c2++)
    {
      res=c%c2;
      if(res==0)
      {
        nc=nc+1;
      }
    }
    if(nc==2)
    {
      cout<<" "<<c;
    }
    nc=0;
  }
  getch();
}

Como trabajar con numeros primos

Todo codigos libres c/c++

Trabajar con cadenas en c ejemplos de programación gratis


Como Poder trabajar con cadenas en c programación libre software C y  C ++

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

int main()
{
    char esunacadena[100] = "Soy una cadena", esunacopia[100];
    strcpy(esunacopia, esunacadena);
    strcat(esunacopia, " - copia");
    cout << esunacadena << endl << esunacopia;
    cin.get();
    return 0;
}

Codigos recojidos de internet gratis espero os sirvan como me sirvieron a mi para prender C y c++

todo codigos

domingo, 28 de abril de 2013

Como sacar factorial de un numero en C


Codigo sencillo para sacar factoriales


#include <stdio.h>
#include <conio.h>
int factorial(int numero){
     int factorial=1;
     for(int i=0;i<numero-1;i++)
        factorial=factorial*(numero-i);
        return factorial;
}
void main(int argc, char* argv[])
{
int numero=0;
printf("Indique numero a calcular Factorial
");
scanf("%d",&numero);
printf("%d",factorial(numero));
getch();
}

espero os sirva ya ire poniendo mas codigos libres y gratis ya que me pase mucho tiempo y era muy frustante no encontrar codigos como yo queria

miércoles, 24 de abril de 2013

Codigo para combinar x numeros con problema en el " Main " codigos en c


Codigo para combinar x numeros tiene un problemita del tipo " `main' must return `int' " pero para eso estamos para resolver problemas en los codigos tampoco es cuestion de que todo lo consigamos listo

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

int nCk(int n,int loopno,int ini,int *a,int k)
{
    static int count=0;
    int i;
    loopno--;
    if(loopno<0)
    {
        a[k-1]=ini;
        for(i=0;i<k;i++)
        {
            printf("%d,",a[i]);
        }
        printf("\n");
        count++;
        return 0;
    }
    for(i=ini;i<=n-loopno-1;i++)
    {
        a[k-1-loopno]=i+1;
        nCk(n,loopno,i+1,a,k);
    }
    if(ini==0)
    return count;
    else
    return 0;
}

void main()
{
    int n,k,*a,count;
    printf("Enter the value of n and k\n");
    scanf("%d %d",&n,&k);
    a=(int*)malloc(k*sizeof(int));
    count=nCk(n,k,0,a,k);
    printf("No of combinations=%d\n",count);
}

martes, 23 de abril de 2013

Ejemplos de programación


Codigo simple en c para suma y resta   Programa de suma   Ejemplos de programación



#include <iostream>


using std::cout;
using std::cin;
using std:: endl;

/***** Funcion Respuesta de Sumar */
 int Add (int primero,int segundo)
 {
cout << "Los numeros ingresados son: " << primero << " y " << segundo << endl;
cin.get();
return (primero + segundo);
 }

 /***** Funcion Respuesta de restar */

 int Rest (int primerorest, int segundorest)
 {
cout << "Los numeros ingresados son: " << primerorest << " y " << segundorest << endl;
cin.get();
return (primerorest - segundorest);
 }

 /***** Codigo principal del Programa */

 int main()
{
cout << "Bienvenido a has tus operaciones\n";
int respuesta;
cout << "Si quieres sumar escribi: 1\n";
cout << "si queres restar escribi: 2\n";
cin >> respuesta;
cout << "Tu respuesta a sido:\t" << respuesta << endl;

enum Operaciones {sumar = 1,restar};

Operaciones proceder;
proceder = sumar;

if (sumar)
{
cout << "Escribe dos numeros para sumar, recuerda dejar un espacio separado del otro\n";
int a,b,c;
   cout << "Ejemplo: 12 (espacio) 44.";
cin >> a;
cin >> b;
c=Add (a,b);
cout << "El resultado de la suma es: " << c;
cin.get();
return 0;
}

else
{
cout << "Escribe dos numeros para restar, recuerda dejar un espacio separado del otro\n";
int d,e,f;
cout << "Ejemplo : 12 (espacio) 44.";
cin >> d;
cin >> e;
f=Rest (d,e);
cout << "El resultado de la suma es: " << f;
cin.get();
return 0;
}

cout << "Programa creado por 1996marioful\n";
cout << "Gracias a Foro.Elhacker.net\n";
cin.get();
return 0;
 }

lunes, 22 de abril de 2013

Combinaciones en C codigos gratis para hacer combinaciones numericas


#include <iostream>
#include <cstdlib>
using namespace std;

int main () {
    int total,i,j,k=0,l=0,ver=0,ver_impar=0,ver_par=0;
    cout<<"Cuantos numeros desea ingresar?: ";
    cin>>total;
    int numeros[total],n_par[total],n_impar[total];
    cout<<"Cuantos numeros desea ver cada vez?: ";
    cin>>ver;
    ver_impar=ver_par=ver;
    for( i = 0; i < total; i++){
        cout<<"Ingrese el "<<i+1<<" numero: ";
        cin >> numeros[i];
        for( j = i-1; j >=0 ; j--){
            if(numeros[i] == numeros[j]){
                cout<<"El numero esta repetido ingrese otro\n";
                i--;
                break;
            }
        }
    }

    for( i = 0; i < total; i++){
         if (numeros[i]%2==0){
            n_par[k]=numeros[i];
            k++;
            }
        else  {
            n_impar[k]=numeros[i];
            l++;
        }
    }
    do{
        for (i=0;i<ver-1;i++){
            cout<< n_impar[i]<<"  ";
        }
        cout<< n_impar[ver_impar-1]<<"  ";
        ver_impar++;
        cout<< endl;
        }while (ver_impar<=l);
    do{
        for (i=0;i<ver-1;i++){
            cout<< n_par[i]<<"  ";
        }
        cout<< n_par[ver_par-1]<<"  ";
        ver_par++;
        cout<< endl;
        }while (ver_par<=k);
    system("pause");
    return 0;
}

Todo Codigo

Codigo para leer o manejar fecha y hora todocodigo


/* Esta es una biblioteca que permite manejar de forma adecuada fechas y horas */

#include <dos.h>

#define dias_por_400_anios   (365*400+100-3)
#define es_anio_bisiesto(y)  ((((y)%400)==0)||((((y)%4)==0)&&(((y)%100)!=0)))


enum bool
{
    false = 0,
    true = 1
};


enum Mes
{
Enero = 1,
Febrero = 2,
Marzo = 3,
Abril = 4,
Mayo = 5,
Junio = 6,
Julio = 7,
Agosto = 8,
Septiembre = 9,
Octubre = 10,
Noviembre = 11,
Diciembre = 12
};

enum DiaSemana
{
Domingo = 1,
Lunes = 2,
Martes = 3,
Miercoles = 4,
Jueves = 5,
Viernes = 6,
Sabado = 7
};


char *nombre_mes(int numero_mes)
{
     char *mes;

switch(numero_mes)
     {
 case 1:        mes="Enero";     break;
 case 2:     mes="Febrero";     break;
 case 3:     mes="Marzo";     break;
 case 4:     mes="Abril";     break;
 case 5:     mes="Mayo";     break;
 case 6:     mes="Junio";     break;
 case 7:     mes="Julio";     break;
 case 8:     mes="Agosto";     break;
 case 9: mes="Septiembre"; break;
 case 10:     mes="Octubre";     break;
 case 11: mes="Noviembre"; break;
 case 12: mes="Diciembre"; break;
     }

     return mes;
}


char *nombre_dia(DiaSemana dia_semana)
{
     char *dia;

     switch(dia_semana)
     {
           case Domingo: dia="Domingo";    break;
    case Lunes:     dia="Lunes"; break;
           case Martes:     dia="Martes"; break;
           case Miercoles: dia="Miercoles"; break;
           case Jueves:     dia="Jueves"; break;
           case Viernes: dia="Viernes";    break;
           case Sabado:      dia="Sabado"; break;
      }

      return dia;
}

struct Fecha
{
    int y, m, d;
};


struct Tiempo
{
    int h, m, s, cs;
};


long dias_pasados_400_anios(int y)
{
    return ( y > 0 ) ? 365 * y + (y-1) / 4 - (y-1) / 100 + 1 : 0;
}


long dias_pasados_mes (int y, int m)
{
    const int dias[12] = { 0, 31, 31+28, 59+31, 90+30, 120+31, 151+30, 181+31,
    212+31, 243+30, 273+31, 304+30 /*, 334+31 = 365*/ };

long resultado;

    resultado = dias[m-1];

    if ( m > Febrero && es_anio_bisiesto ( y ) )
        resultado++;

    return resultado;
}

long dias_pasados_fecha (Fecha fecha)
{
    long dias;
    dias = (fecha.y/400)*dias_por_400_anios + dias_pasados_400_anios ( fecha.y % 400 )
+ dias_pasados_mes ( fecha.y, fecha.m ) + fecha.d;

    return dias;
}

long diferencia_dias (Fecha fechaInicial, Fecha fechaFinal)
{
    return dias_pasados_fecha(fechaFinal) - dias_pasados_fecha(fechaInicial);
}

DiaSemana dia_de_la_semana(Fecha fecha)
{
long resultado;

resultado = dias_pasados_400_anios ( fecha.y % 400 ) + dias_pasados_mes ( fecha.y, fecha.m ) + fecha.d;

/* El primer dia de la semana de cada 400 anios es viernes */
resultado = (Viernes+resultado) % 7;

/* Si es 0, entonces es sabado */
if (resultado==0)
  resultado = 7;

return (DiaSemana)resultado;
}

int dias_en_el_mes (int y, int m)
{
    const int dias[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int resultado;

resultado = dias[m-1];

if ( m == Febrero && es_anio_bisiesto ( y ) )
resultado++;

return resultado;
}

int dias_en_el_anio (int y)
{
return (es_anio_bisiesto ( y ) ) ? 366 : 365;
}

void sumar_dias_fecha (int dias, Fecha *fecha )
{
    for(int i=1;i<=dias;i++)
    {
  fecha->d++;

        if(fecha->d>dias_en_el_mes(fecha->y, fecha->m))
        {
           fecha->d=1;
           fecha->m++;
        }
        if(fecha->m>12)
        {
           fecha->m=1;
  fecha->y++;
        }
    }
}

long centesimas_pasados_tiempo (int h, int m, int s, int cs)
{
return h*(60*60*100) + m*(60*100) + s*100 + cs;
}

long diferencia_centesimas (Tiempo tiempoInicial, Tiempo tiempoFinal)
{
    return centesimas_pasados_tiempo ( tiempoInicial.h, tiempoInicial.m, tiempoInicial.s, tiempoInicial.cs )
- centesimas_pasados_tiempo ( tiempoFinal.h, tiempoFinal.m, tiempoFinal.s, tiempoFinal.cs );
}

void sumar_centesimas_tiempo (long centesimas, Tiempo *tiempo )
{
    tiempo->h = centesimas / (60*60*100);
centesimas %= (60*60*100);
tiempo->m = centesimas / (60*1000);
centesimas %= (60*100);
tiempo->s = centesimas / 100;
tiempo->cs = centesimas % 100;
}

bool es_fecha_valida ( Fecha fecha )
{
if ( fecha.m < Enero || fecha.m > Diciembre )
return false;

if ( fecha.d < 0 || fecha.d >= dias_en_el_mes ( fecha.y, fecha.m ) )
return false;

return true;
}

bool es_tiempo_valido ( Tiempo tiempo )
{
    if ( tiempo.h < 0 || tiempo.h >= 24 )
return false;

if ( tiempo.m < 0 || tiempo.m >= 60 )
return false;

if ( tiempo.s < 0 || tiempo.s >= 60 )
return false;
if ( tiempo.cs < 0 || tiempo.cs >= 100 )
return false;

return true;
}


void leer_fecha_tiempo_local (Fecha *fecha, Tiempo *tiempo )
{
struct date d;
struct time t;

getdate(&d);
fecha->y = d.da_year;
fecha->m = d.da_mon;
fecha->d = d.da_day;

gettime(&t);
tiempo->h = t.ti_hour;
tiempo->m = t.ti_min;
tiempo->s = t.ti_sec;
tiempo->cs = t.ti_hund;
}

char *fecha_formateada (Fecha fecha)
{
char *dia=nombre_dia(dia_de_la_semana(fecha));
char *mes=nombre_mes(fecha.m);

char f[100];
sprintf(f, "%s, %02d de %s del %d", dia, fecha.d, mes, fecha.y);

return f;
}

char *tiempo_formateado (Tiempo tiempo)
{
char t[50];

sprintf(t, "%02d:%02d:%02d %02d", tiempo.h, tiempo.m, tiempo.s, tiempo.cs);
return t;
}

Abrir archivos Leer archivo txt en c

Este codigo te permite leer desde un archivo txt en c y te lo escribe en otro archivo tambien sirve para abrir un archivo y hacer comparaciones con otro archivo todo es cuestion de modificarlo a tu gusto


    /* Lee del fichero datos.txt y copia en resu.txt
    1.    caracter a caracter  */

    2. #include <stdio.h>



    3. main()
    4. {
    5.   FILE  *pforigen;
    6.   FILE  *pfdestino;
    7.   char letra;


    8.   pforigen = fopen("datos.txt","r"); // Abro para lectura
    9.   if ( pforigen == NULL )
    10.      {
    11.      puts("Error al abrir el fichero de lectura ");
    12.      return 1;
    13.      }

    14.   pfdestino = fopen("resu.txt","w"); // Abro para escritura
    15.   if ( pfdestino == NULL )
    16.      {
    17.      puts("Error al abrir el fichero de lectura ");
    18.      return 1;
    19.      }


    20.   letra = getc(pforigen);
    21.   while ( !feof(pforigen) )
    22.      {
    23.      putc(letra,pfdestino);
    24.      letra = getc(pforigen);
    25.      }

    26.   fclose(pforigen);
    27.   fclose(pfdestino);
    28.   getchar();
    29.   return 0;
    30. }