Вы находитесь на странице: 1из 22

Kaprikar

#include<stdio.h>

int evaluacion(int d[]);

void ordenascendente(int c[]);

int main()

int i, j, r, n, nummayor, nummenor;

int a[4], b[4];

char op;

do

do

printf("Ingrese un numero de cuatro cifras:");

scanf("%d", &n);

a[0]=n/1000;

a[1]=(n%1000)/100;

a[2]=(n%100)/10;

a[3]=n%10;

r=evaluacion(a);

while(n<1000 || n>9999 || r==3);

while(n!=6174)

for(j=0; j<4; j++)

{
b[j]=a[j];

ordenascendente(b);

nummenor=b[0]*1000+b[1]*100+b[2]*10+b[3];

nummayor=b[0]+b[1]*10+b[2]*100+b[3]*1000;

n=nummayor-nummenor;

printf("\n%d - %d = %d", nummayor, nummenor, n);

a[0]=n/1000;

a[1]=(n%1000)/100;

a[2]=(n%100)/10;

a[3]=n%10;

printf("\nLa constante de Kaprekar es: %d", n);

printf("\ndijite 1 si desea continuar...");

op=toupper(getch());

system("cls");

while(op=='1');

return 0;

int evaluacion(int d[])

int s=0, j;

for(j=1; j<4; j++)

if(d[0]==d[j])
{

s++;

return s;

void ordenascendente(int c[])

int vueltas, j, aux;

for(vueltas=1; vueltas<4; vueltas++)

for(j=0; j<3; j++)

if(c[j]>c[j+1])

aux=c[j];

c[j]=c[j+1];

c[j+1]=aux;

Carrera entre la liebre y la tortuga

#include <stdio.h>

#include <stdlib.h>

#include<time.h>
#include<windows.h>

void Imprime_Pista(char A[], int n);

int Avanza_Liebre( int l);

int Avanza_Tortuga(int t);

int cambiovector(char c[], int d, int e);

int main()

printf("\n\nESTE PROGRAMA SIMULA LA MEMORABLE CARRERA ENTRE LA


");

printf("\nLIEBRE (L) Y LA TORTUGA (T)!");

printf("\nAMBAS INICAN EMPATADAS (E) EN LA CASILLA 1.");

printf("\n\t\t\tHAGAN SUS APUESTAS! ");

srand(time(NULL));

char Pista[71] ={'E'};

int Posicion_Tortuga = 1;

int tortuga = 1;

int Posicion_Liebre = 1;

int liebre = 1;

int centinela = 0;

int x;

Imprime_Pista( Pista, 70);

printf("\n\t\t\t\tBANG!");

printf("\n\t\t\t Y ARRANCAN!");

while ( 0 == centinela )

Sleep(1000);

for (x = 1; x <= 70; x++ )


{

Pista[x] = '0';

Posicion_Tortuga = Avanza_Tortuga( Posicion_Tortuga );

tortuga = Posicion_Tortuga;

Posicion_Liebre = Avanza_Liebre( Posicion_Liebre );

liebre = Posicion_Liebre;

centinela=cambiovector(Pista, liebre, tortuga);

if ( 'E' == Pista[tortuga])

printf("\n\aOUCH! LA TORTUGA TRAMPOSA HA MORDIDO A


LA LIEBRE! ");

Imprime_Pista( Pista, 70 );

if ( Posicion_Liebre >= 70 )

if ( Posicion_Tortuga> 70)

printf("\nQUE CIERRE! LA LIEBRE Y LA TORTUGA


EMPATARON! ");

else

printf("\nNI HABLAR, GANO LA LIEBRE! ");

if ( Posicion_Tortuga >= 70 )

{
if ( Posicion_Liebre < 70)

printf("\nZANAHORIA Y LECHUGAS FRESCAS PARA LA


TORTUGA QUE SE LLEVA ");

printf("\nLA COMPETENCIA! BRAVO! ");

else

printf("\nEN UN DRAMATICO CIERRE LA TORTUGA Y LA


LIEBRE EMPATAN! ");

return 0;

//////////////////////////////////////////////////////////////

// INICIA LA FUNCION IMPRIME PISTA

////////////////////////////////////////////////////////////////

void Imprime_Pista( char A[], int n)

int i;

printf("\n");

for (i = 1; i <= n; i++ )

if ( '0' == A[i] )

printf(" ");

else

printf("%c", A[i]);
}

/////////////////////////////////////////////////////////////////////

// INICIA AVANZA LIEBRE

////////////////////////////////////////////////////////////////////

int Avanza_Liebre ( int l )

int ruleta;

ruleta = 1+rand()%10;

if ( 2 >= ruleta )

return l;

if ( 4 >= ruleta )

return (l + 9);

if ( 5 >= ruleta )

return l - 12;

if ( 8 >= ruleta )

return l + 1;

if ( 10 >= ruleta )

return l - 2;

///////////////////////////////////////////////////////////////////

// INICIA AVANZA TORTUGA

////////////////////////////////////////////////////////////////////

int Avanza_Tortuga ( int t )

int dados;
dados = 1+rand()%10;

if ( 5 >= dados )

return t + 3;

if ( 7 >= dados )

return t - 6;

if ( 10 >= dados )

return t + 1;

int cambiovector(char c[], int d, int e)

int s=0;

if ( (d>=1) && ( 70> d) )

c[d] = 'L';

if ( d < 1 )

d = 1;

c[d] = 'L';

if ((e >= 1) && (70 > e ) )

if ( e == d )

c[e] = 'E';

}
else

c[e] = 'T';

if ( e < 1 )

e = 1;

if ( d == 1 )

c[e] = 'E';

else

c[e] = 'T';

if ( d >= 70 )

s = -1;

if ( e >= 70 )

s = -1;

return s;

}
#include<stdio.h>

#include<stdlib.h>

#include<time.h>

void llenar(int c[], int r);

int primos(int d[], int e[], int s);

int compuestos(int f[], int g[], int t);

void ordenascendente(int h[], int p);

void ordendescendente(int k[], int q);

void eliminarrepetidos(int y[], int z);

void impresion(int m[], int x);

int main()

int b, n, op, os;

char oc;

srand(time(NULL));

do

system("cls");

do

printf("\t\tPROGRAMA PARA ESTUDIAR VECTORES...");

printf("\n\tIngrese la opcion que decea efectuar:");

printf("\n\n1-Encontrar los numeros primos..");

printf("\n2-Encontrar los numeros compuestos..");

printf("\n3-Imprimir el vector integral..");

printf("\n4-Salir..");
scanf("%d", &op);

while(op>4 || op<1);

if(op<4)

do

printf("\n\nIngrese el tamao del vector: ");

scanf("%d", &n);

while(n<1);

int v[n];

int a[n];

llenar(v, n);

os=op;

switch(op)

case 1:

b=primos(v, a, n);

printf("\n\nEl vector base es:");

impresion(v, n);

eliminarrepetidos(a, b);

printf("\n\nEl vector de primos es:");

printf("\n");

impresion(a, b);

break;
case 2:

b=compuestos(v, a, n);

printf("\n\nEl vector base es:");

impresion(v, n);

eliminarrepetidos(a, b);

printf("\n\nEl vector de compuestos es:");

impresion(a, b);

break;

case 3:

printf("\n\nEl vector integral es:");

impresion(v, n);

break;

do

printf("\n\nIngrese su opcion:");

printf("\na-Ordenarlo de forma ascendente.. ");

printf("\nb-Ordenarlo de forma descendente.. ");

scanf("%s", &oc);

while(oc!='a' && oc!='b' && oc!='A' && oc!='B');

switch(oc)

case 'a': case 'A':

if(os==3)

{
ordenascendente(v, n);

printf("\n\nEl vector queda:");

impresion(v, n);

else

ordenascendente(a, b);

printf("\n\nEl vector queda:");

impresion(a, b);

break;

case 'b': case'B':

if(os==3)

ordendescendente(v, n);

printf("\n\nEl vector queda:");

impresion(v, n);

else

ordendescendente(&a[0], b);

printf("\n\nEl vector queda:");

impresion(&a[0], b);

break;

}
getch();

while(op!=4);

getch();

return 0;

void llenar(int c[], int r)

int i;

for(i=0; i<r; i++)

c[i]=2+rand()%198;

int primos(int d[], int e[], int s)

int i, r, acum, j=0, con=0;

for(i=0; i<s; i++)

acum=0;

for(r=1; r<=d[i]; r++)

if(d[i]%r==0)

acum=acum+r;
}

if(acum==d[i]+1)

e[j]=d[i];

j++;

con++;

return con;

int compuestos(int f[], int g[], int t)

int i, r, acum, j=0, con=0;

for(i=0; i<t; i++)

acum=0;

for(r=1; r<=f[i]; r++)

if(f[i]%r==0)

acum=acum+r;

if(acum!=f[i]+1)

{
g[j]=f[i];

j++;

con++;

return con;

void ordenascendente(int h[], int p)

int pasadas, i, aux;

for ( pasadas = 1; pasadas < p; pasadas++ )

for ( i = 0; i < (p-1); i++ )

if ( h[ i ] > h[ i + 1 ] )

aux = h[ i ];

h[ i ] = h[ i + 1 ];

h[ i + 1 ] = aux;

void ordendescendente(int k[], int q)

int pasadas, i, aux;


for ( pasadas = 1; pasadas < q; pasadas++ )

for ( i = 0; i < (q-1); i++ )

if ( k[ i ] < k[ i + 1 ] )

aux = k[ i ];

k[ i ] = k[ i + 1 ];

k[ i + 1 ] = aux;

void eliminarrepetidos(int y[], int z)

int i, j;

for(i=0; i<z; i++)

for(j=i+1; j<z; j++)

if(y[i]==y[j])

y[j]=0;

}
}

void impresion(int m[], int x)

int i;

printf("\n");

for(i=0; i<x; i++)

if(m[i]!=0)

printf("%d ", m[i]);

}
Vendedores

#include<stdio.h>

#include<stdlib.h>

#define COLUMNAS 4 //VENDEDORES

#define FILAS 5 //PRODUCTOS

void iniciar_bid();

void lectura_ventas();

void totalizar_columnas();

void totalizar_filas();

int validar_num();

int mat[COLUMNAS][FILAS];

int mat_col[COLUMNAS];//Vendedores

int mat_fil[FILAS];//Productos

int main()

iniciar_bid();

lectura_ventas();

totalizar_columnas();//Vendedores

totalizar_filas();//Productos

void iniciar_bid()

int i, j;
for (i = 0; j < COLUMNAS; i++)

for (j = 0; i < FILAS; j++)

mat[i][j] = 0;

void lectura_ventas()

int i, j;

for (i = 0; i < COLUMNAS; i++){

for (j = 0; j < FILAS; j++){

printf("\nIngrese las ventas del Vendedor %d, "

"Producto %d:\t", i+1, j+1);

mat[i][j]= validar_num();

printf("\n");

void totalizar_columnas()

int i, j;

for (i = 0; i < COLUMNAS; i++)

mat_col[i] = 0;

for(j = 0; j < FILAS; j++)


mat_col[i] += mat[i][j];

printf("\tVendedor %d, total ventas:\t%d\n ", i+1, mat_col[i]);

printf("\n");

void totalizar_filas()

int i, j;

for (j = 0; j < COLUMNAS; j++)

mat_col[j] = 0;

for(i = 0; i < FILAS; i++)

mat_col[j] += mat[i][j];

printf("\tProducto %d, total ventas:\t%d\n ", j+1, mat_col[j]+1);

int validar_num ()

int num;

do

scanf("%d", &num);

}while(num < 0);


return num;

Вам также может понравиться