/* calcular el factorial de una cantidad entera */
# include
long int factorial (int n); /* promedio de funcion*/
main()
{
int n;
/* leer la cantidad entera*/
printf ("\nn = ");
scanf ("%d", &n);
/* calcular y visualizar el factorial*/
printf ("\nn! = &d", factorial (n));
}
long int factorial (int n)
/* calcular el factorial de n */
{
int i;
long int prod = 1;
if (n > 1)
for (i = 2; i <= n; ++i) prod *= i; system ("pause"); return (prod); } ------------------------------------------- PROBLEMA 2 (página 313)
/* reordenar un array unidimensional de enteros, de menor a mayo*/
#include
#define TAM 100
void reordenar (int n, int x[]);
main ()
{
int i, n, x [TAM];
/* leer el valor de n */
printf ("\n¿Cuantos numeros seran introducidos? ");
scanf("%d", &n);
printf("\n");
/* leer la lista de numeros */
for (i = 0; i < n; ++i) { printf ("i =%d x= ", i + 1); scanf ("%d", &x [i]); } /* reordenar todos los elementos del array */ reordenar (n, x); /* escribir la lista reordenada de numeros */ printf ("\n\nLista de numeros reordenada: \n\n"); for (i = 0; i < n; ++i) printf ("i = %d x= %d\n", i + 1, x [i]); system ("pause"); } void reordenar (int n, int x[]) /* reordenar la lista de numeros */ { int i, elem, temp; for (elem = 0; elem < n - 1; ++ elem) /* encontrar el menor del resto de los elementos */ for (i = elem + 1; i < n; ++i) if (x[i]< x[elem]) system ("pause"); { /* intercambiar los dos elementos */ temp = x [elem]; x[i]= temp; } system ("pause"); return; } ----------------------------------- PROBLEMA 3 (Página 495)
/* crear un archivo de datos que contiene registros de clientes */
#include
#include
# define verdadero 1
typedef struct
{
int mes;
int dia;
int anio;
}
fecha;
typedef struct
{
char nombre [80];
char calle [80];
char ciudad [80];
int num_cuenta; /* entero positivo */
int tipo_cuenta; /*A (Al dia), R (atrasada) o D (delincuente)*/
float anteriorsaldo; /* (cantidad no negativa)*/
float nuevosaldo; /* (cantidad no negativa)*/
float pago; /* (cantidad no negativa)*/
fecha ultimopago;
}
registro;
registro leerpantalla (registro cliente); /* proposito de funcion */
void escribirarchivo (registro cliente); /* proposito de funsion */
FILE *fpt; /* puntero a la estructura predefinida file*/
main()
{
int indicador = verdadero /* declaracion de variable*/
registro cliente; /* declaracion de variable de estructura */
/* abrir un archivo nuevo solo para escritura */
fpt = fopen ("registro.dat", "w");
/* introducir fecha y asignar valores iniciales */
printf ("SISTEMA DE FACTURACION DE CLIENTES - INICIALIZACION\n\n");
printf ("Introduzca la fecha actual (mm/dd/aaaa): ");
scanf ("&d/&d/&d/", &cliente.ultimo pago.mes,
&cliente.ultimo pago.dia,
&cliente.ultimo pago.año,
cliente.nuevo saldo = 0;
cliente.pago = 0;
cliente.tipo.cuenta = 'A';
/* bucle principal */
while (indicador)
{
/* Introducir el nombre del cliente y escribirlo en el archivo */
printf ("\nNombre (introducir \'FIN\' para terminar): ");
scanf (strcmp(cliente.nombre, "FIN") == 0)
break;
cliente = leer pantalla (cliente);
escribir archivo (cliente);
}
fclose(fpt);
}
registro leer pantalla (registro cliente) /* leer el resto de datos */
{
printf("calle: ");
scanf ("% [ˆ\n]", cliente.calle);
printf("ciudad: ");
scanf("% [ˆ\n]", cliente.ciudad);
printf("Numero de cuenta: ");
scanf("%d", &cliente.num_cuenta);
printf("Saldo actual: "):
scanf("%f", &cliente.aterior saldo);
return (cliente);
}
void escribir archivo (registro cliente) /* escribir el resto de los datos en el archivo */
{
fprintf(fpt, "%s\n", cliente.calle);
fprintf(fpt, "%s\n", cliente.ciudad);
fprintf(fpt, "%d\n", cliente.num_cuenta);
fprintf(fpt, "%c\n", cliente.tipo_cuenta);
fprintf(fpt, "%2f\n", cliente.anterior saldo);
fprintf(fpt, "%2f\n", cliente.nuevo saldo);
fprintf(fpt, "%2f\n", cliente.pago);
fprintf(fpt, "%d/%d/%d\n", cliente.ultimo pago.mes,cliente.ultimo pago.dia, cliente.ultimo pago.año);
return;
}
No hay comentarios:
Publicar un comentario