Ejercicios Resueltos de C - Estructuras - 1
Ejercicios Resueltos de C - Estructuras - 1
Crear una estructura llamada "jugador", que almacene la siguiente información sobre
jugadores de fútbol:
nombre del jugador
nombre del equipo
cantidad de partidos jugados
cantidad de goles convertidos
promedio de goles por partido
Utilizando la estructura, declarar un array de 100 elementos de estructuras de ese tipo.
Escribir un programa que cargue los datos del array. Se ingresan: nombre del jugador,
nombre del equipo,cantidad de partidos jugados y cantidad de goles convertidos. Por cada
jugador se calcula el promedio de
goles por partido y se almacena en el miembro la información contenida en el array
( nombre del jugador,nombre del equipo, cantidad de partidos jugados, cantidad de goles
convertidos y promedio de goles por partido.
#include <stdio.h>
#include <conio.h>
#define TAM 3
struct persona
char nombre[50];
char equipo[100];
int partidos;
int goles;
float promedio;
};
void main()
int i;
float auxf;
for(i=0;i<TAM;i++)
{
clrscr();
printf("FICHA DE JUGADOR\n\n");
printf("NOMBRE:");fflush(stdin);gets(jugadores[i].nombre);
printf("EQUIPO:");fflush(stdin);gets(jugadores[i].equipo);
printf("PARTIDOS:");scanf("%d",&jugadores[i].partidos);
printf("GOLES:");scanf("%d",&jugadores[i].goles);
for(i=0;i<TAM;i++)
PARTIDO",jugadores[i].nombre,jugadores[i].equipo,jugadores[i].partidos,jugadores[i].
goles,jugadores[i].promedio);
getch();
EJERCICIO 2
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#define TAM 3
struct direccion
char calle[100],numero[20],localidad[50];
};
struct personas
char nombre[30];
int edad;
char sexo;
};
void main()
int i,j;
char auxs[100];
clrscr();
for(i=0;i<TAM;i++)
printf("\nNOMBRE:");fflush(stdin);gets(empleados[i].nombre);
printf("DIRECCION\n");
printf("\tCALLE:");fflush(stdin);gets(empleados[i].[Link]);
printf("\tN§:");fflush(stdin);gets(empleados[i].[Link]);
printf("\tLOCALIDAD:");fflush(stdin);gets(auxs);
strcpy(empleados[i].[Link],strlwr(auxs));// PASO LA
CADENA A MINUSCULA
printf("EDAD:");scanf("%d",&empleados[i].edad);
printf("SEXO f/m:");empleados[i].sexo = getche();
clrscr();
for(i=0;i<TAM;i++)
DEMAS DATOS
getch();
clrscr();
for(i=0;i<TAM;i++)
if(strcmp(empleados[i].[Link],"avellaneda") == 0)
printf("\nNOMBRE %s",empleados[i].nombre);
getch();
clrscr();
A¥OS
for(i=0;i<TAM;i++)
strcmp(empleados[i].[Link],"avellaneda") == 0)
printf("\nNOMBRE %s",empleados[i].nombre);
getch();
// ORDENADO ALFABETICAMENTE
clrscr();
for(i=0;i<TAM-1;i++)
for(j=i+1;j<TAM;j++)
if(strcmp(empleados[i].nombre,empleados[j].nombre)>0)
{
auxst = empleados[i];
empleados[i] = empleados[j];
empleados[j] = auxst;
for(i=0;i<TAM;i++)
printf("\nNOMBRE %s",empleados[i].nombre);
getch();
EJERCICIO 3
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define TAM 3
struct alumno
char apellido[20];
float nota,legajo;
};
void main()
int i,j,flag;
char mod;
float leg;
for(i=0;i<TAM;i++)//INGRESO DE DATOS
{
clrscr();
printf("\nNOTAS\n*****\n\n");
printf("APELLIDO:");
fflush(stdin);
gets(curso[i].apellido);
printf("NOTA:");
scanf(" %f",&curso[i].nota);
printf("LEGAJO:");
scanf(" %f",&curso[i].legajo);
do
{ clrscr();
printf("\nNOTAS\n*****\n");
");
mod = getche();
if(mod!='s'&&mod!='n')
if(mod == 's')
printf("\nINGRESE LEGAJO:");scanf("%f",&leg);
for(i=0;i<TAM;i++)
flag = 0;
if(curso[i].legajo == leg)
scanf("%f",&curso[i].nota);
flag = 1;
break;
if(flag == 0)
getch();
}while(mod != 'n');
EJERCICIO 4
Se ingresa nombre, sexo y edad de 100 personas. Se pide averiguar la cantidad de mujeres
tienen entre 20 y 30 años y cuantos hombres son menores a 37 años.
#include <stdio.h>
#include <conio.h>
struct registro
{
char nombre[40];
char sexo;
int edad;
};
void main()
int i,mujeres=0,hombres=0;
for(i=0;i<TAM;i++)
clrscr();
printf("INGRESE NOMBRE:");
fflush(stdin);
gets(persona[i].nombre);
persona[i].sexo = getche();
printf("\nINGRESE EDAD:");
scanf("%d",&persona[i].edad);
if(persona[i].sexo == 'f')
mujeres++;
hombres++;
clrscr();
getch();
EJERCICIO 5
Para un censo se debe tomar la edad, el nombre, la dirección y teléfono de 100 personas.
Realizar el programa que permita cargar los datos, mostrarlos ordenados alfabéticamente
por apellido.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define TAM 3
struct registros
int edad;
char nombre[40],direccion[100],tel[15];
};
void main()
int i,j;
for(i=0;i<TAM;i++)
clrscr();
printf("INGRESE NOMBRE:");
fflush(stdin);
gets(personas[i].nombre);
printf("INGRESE EDAD:");
scanf("%d",&personas[i].edad);
// VALIDAR QUE NO SEA MENOR DE 0
printf("INGRESE DIRECCION:");
fflush(stdin);
gets(personas[i].direccion);
printf("INGRESE TEL:");
fflush(stdin);
gets(personas[i].tel);
// VALIDAR
for(i=0;i<TAM-1;i++)
for(j=i+1;j<TAM;j++)
if(strcmp(personas[i].nombre,personas[j].nombre)>0)
auxst = personas[i];
personas[i] = personas[j];
personas[j] = auxst;
for(i=0;i<TAM;i++)
%s",personas[i].nombre,personas[i].edad,personas[i].direccion,personas[i].tel);
getch();
EJERCICIO 6
Realizar una agenda para guardar los datos de hasta 200 personas de las cuales se toman
los siguientesdatos:
Nombre
Apellido
Dirección
Localidad
Código Postal
Fecha de nacimiento ( Día, Mes y Año)
Utilizar estructuras anidadas.
Se pide que una vez cargados los datos, se disponga de un menú de opciones que me
permita hacer las siguientes consultas:
1- Consulta por apellido
2- Consulta por localidad
3- Consulta por Año de nacimiento
4- Consulta por cumpleaños
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define TAM 2
struct fecha
int dia,mes,anio;
};
struct datos
char nombre[40],apellido[40];
char direccion[100],localidad[100];
int codigo;
};
void main()
int i,flag,auxi,auxib;
char op,seguir='n',auxs[100];
clrscr();
printf("NOMBRE:");fflush(stdin);gets(agenda[i].nombre);
printf("APELLIDO:");fflush(stdin);gets(agenda[i].apellido);
printf("DIRECCION:");fflush(stdin);gets(agenda[i].direccion);
printf("LOCALIDAD:");fflush(stdin);gets(agenda[i].localidad);
printf("COD POSTAL:");scanf("%d",&agenda[i].codigo);
printf("FECHA NACIMIENTO...");
printf("\n\tDIA xx/:");scanf("%d",&agenda[i].[Link]);
printf("\tMES xx/:");scanf("%d",&agenda[i].[Link]);
printf("\tA¥O xxxx:");scanf("%d",&agenda[i].[Link]);
do
clrscr();
printf("0<--- SALIR");
printf("\nINGRESAR OPCION:");
op = getche();
switch(op)
case '1':
clrscr();
gets(auxs);
flag = 0;
for(i=0;i<TAM;i++)
if(strcmp(auxs,agenda[i].apellido)==0)
printf("\n\nNOMBRE:
%s",agenda[i].nombre);
printf("\nAPELLIDO: %s",agenda[i].apellido);
printf("\nDIRECCION:
%s",agenda[i].direccion);
printf("\nLOCALIDAD:
%s",agenda[i].localidad);
printf("\nCODIGO POSTAL:
%d",agenda[i].codigo);
printf("\nFECHA NACIMIENTO:
%d/%d/%d",agenda[i].[Link],agenda[i].[Link],agenda[i].[Link]);
flag = 1;
if(flag == 0)
getch();
break;
case '2':
clrscr();
fflush(stdin);
gets(auxs);
flag = 0;
for(i=0;i<TAM;i++)
if(strcmp(auxs,agenda[i].localidad)==0)
printf("\n\nNOMBRE:
%s",agenda[i].nombre);
printf("\nAPELLIDO: %s",agenda[i].apellido);
printf("\nDIRECCION:
%s",agenda[i].direccion);
printf("\nLOCALIDAD:
%s",agenda[i].localidad);
printf("\nCODIGO POSTAL:
%d",agenda[i].codigo);
printf("\nFECHA NACIMIENTO:
%d/%d/%d",agenda[i].[Link],agenda[i].[Link],agenda[i].[Link]);
flag = 1;
if(flag == 0)
getch();
break;
case '3':
clrscr();
scanf("%d",&auxi);
flag = 0;
for(i=0;i<TAM;i++)
if(auxi == agenda[i].[Link])
{
printf("\n\nNOMBRE:
%s",agenda[i].nombre);
printf("\nAPELLIDO: %s",agenda[i].apellido);
printf("\nDIRECCION:
%s",agenda[i].direccion);
printf("\nLOCALIDAD:
%s",agenda[i].localidad);
printf("\nCODIGO POSTAL:
%d",agenda[i].codigo);
printf("\nFECHA NACIMIENTO:
%d/%d/%d",agenda[i].[Link],agenda[i].[Link],agenda[i].[Link]);
flag = 1;
if(flag == 0)
getch();
break;
case '4':
clrscr();
printf("\nDIA xx/:");scanf("%d",&auxi);
printf("MES xx/:");scanf("%d",&auxib);
flag = 0;
for(i=0;i<TAM;i++)
agenda[i].[Link])
{
printf("\n\nNOMBRE:
%s",agenda[i].nombre);
printf("\nAPELLIDO: %s",agenda[i].apellido);
printf("\nDIRECCION:
%s",agenda[i].direccion);
printf("\nLOCALIDAD:
%s",agenda[i].localidad);
printf("\nCODIGO POSTAL:
%d",agenda[i].codigo);
printf("\nFECHA NACIMIENTO:
%d/%d/%d",agenda[i].[Link],agenda[i].[Link],agenda[i].[Link]);
flag = 1;
if(flag == 0)
getch();
break;
case '0':
seguir = getch();
// VALIDAR
break;
default:
getch();
}while(seguir== 'n');
}
EJERCICIO 7
Realizar un programa con un menú de opciones para hacer altas, bajas y modificaciones
(ABM) de una agenda.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define TAM 10
struct datos
char nombre[40];
char tel[20];
};
void main()
int i,j,k,flag,ant=0,flagb = 0;
do
clrscr();
printf("0<--- SALIR\n");
printf("\nINGRESE OPCION:");
op = getche();
switch(op)
case '1':
flagb = 1;
clrscr();
printf("INGRESE NOMBRE:");
fflush(stdin);
gets(auxs);
printf("INGRESE TEL:");
fflush(stdin);
gets(auxsb);
flag = 0;
for(i=ant;i<TAM;)
if(ant!= TAM)
flag = 1;
strcpy(agenda[i].nombre,auxs);
strcpy(agenda[i].tel,auxsb);
ant = i+1;
break;
if(flag==0)
DATOS");
getch();
}
break;
case '2':
if(flagb == 0)
getch();
else
clrscr();
printf(":");
fflush(stdin);
gets(auxs);
printf(":");
fflush(stdin);
gets(auxsb);
flag = 0;
for(i=0;i<ant;i++)
if(strcmp(auxs,agenda[i].nombre)==0 &&
strcmp(auxsb,agenda[i].tel)==0)
flag = 1;
fflush(stdin);
gets(agenda[i].nombre);
printf("INGRESE NUEVO
TELEFONO:");
fflush(stdin);
gets(agenda[i].tel);
break;
if(flag == 0)
getch();
break;
case '3':
if(flagb == 0)
getch();
else
clrscr();
DATOS A BORRAR\n\n");
printf(":");
fflush(stdin);
gets(auxs);
printf(":");
fflush(stdin);
gets(auxsb);
flag = 0;
for(i=0;i<ant;i++)
if(strcmp(auxs,agenda[i].nombre)==0 &&
strcmp(auxsb,agenda[i].tel)==0)
flag = 1;
for(j=i;j<ant-1;j++)
for(k=j+1;k<ant;k++)
strcpy(agenda[j].nombre,agenda[k].nombre);
strcpy(agenda[j].tel,agenda[k].tel);
break;
ant = ant - 1;
break;
if(flag==0)
getch();
break;
case '4':
if(flagb==0)
else
printf("\n");
for(i=0;i<ant;i++)
printf("\nNOMBRE %s TELEFONO
%s",agenda[i].nombre,agenda[i].tel);
getch();
break;
case '0':
seguir = getch();
// VALIDAR
break;
default:
getch();
}while(seguir == 'n');
EJERCICIO 8
Armar 2 estructuras:
producto: cliente:
código código
precio unitario datos ( nombre y dirección)
descripción monto acumulado de compras
stock
a) Cargar los productos (100) y los clientes (45). Ambas cargas deben realizarse una sola
vez.
b) Ingresando código del cliente, código del producto y cantidad vendida, confeccionar la
factura correspondiente realizando los siguientes controles:
- Verificar que cantidad vendida no supere existencia en stock
- Debitar stock en cada venta
- Actualizar monto acumulado de compras de cada cliente
c) Mostrar por pantalla la factura
d) Listar los clientes cuyo monto acumulado de compras supere $1000
#include <stdio.h>
#include <conio.h>
#define TAM 5
struct productos
float codpro,precio,stock;
char descripcion[200];
};
struct cliente
float codcli,monto;
char nombre[40],direccion[200];
};
void main()
int i,flag=0,flag1=0,guard,no=0;
float auxf;
char seguir;
for(i=0;i<TAM;i++)
clrscr();
printf("CODIGO CLIENTE:");
scanf("%f",&auxf);
cli[i].codcli = auxf;
printf("NOMBRE:");
fflush(stdin);
gets(cli[i].nombre);
printf("DIRECCION:");
fflush(stdin);
gets(cli[i].direccion);
cli[i].monto = 0;
clrscr();
printf("CODIGO PRODUCTO:");
scanf("%f",&auxf);
cli[i].[Link] = auxf;
printf("PRECIO UNIDAD:");
scanf("%f",&auxf);
cli[i].[Link] = auxf;
printf("DESCRIPCION:");
fflush(stdin);
gets(cli[i].[Link]);
printf("STOCK:");
scanf("%f",&auxf);
cli[i].[Link] = auxf;
}
do
do
clrscr();
printf("VENTA\n");
printf("CODIGO CLIENTE:");
scanf("%f",&auxf);
flag = 0;
for(i=0;i<TAM-2;i++)
if(auxf == cli[i].codcli)
flag = 1;
printf("CODIGO PRODUCTO:");
scanf("%f",&auxf);
flag1 = 0;
for(i=0;i<TAM;i++)
if(auxf == cli[i].[Link])
flag1 = 1;
printf("CANTIDAD VENDIDAD:");
scanf("%f",&auxf);
no = 1;
break;
else
{
cli[i].[Link]-= auxf;
cli[i].monto+= auxf *
cli[i].[Link];
guard = i;
break;
if(flag == 0)
if(flag1 == 0)
if(no == 0)
clrscr();
seguir = getch();
// VALIDAR
}while(seguir=='s');
getch();
flag=0;
for(i=0;i<TAM;i++)
if(cli[i].monto > 1000)
flag = 1;
if(flag==0)
getch();
EJERCICIO 9
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define TAM 3
struct lib
int codigo,ejemplares;
char autor[50],titulo[100];
};
void main()
int i,j,flag=0,auxi,prestados[TAM];
char auxs[200],op,seguro;
EXISTENTES
clrscr();
for(i=0;i<TAM;i++)
libros[i].codigo = 0;
prestados[i] = 0;
for(i=0;i<TAM;)
scanf("%d",&auxi);
flag = 0;
// VALIDO
while(auxi<1 || auxi>TAM)
for(j=0;j<TAM;j++)
if(auxi == libros[j].codigo)
flag = 1;
if(flag!=1)
libros[i].codigo = auxi;
scanf("%d",&auxi);
while(auxi<0)
scanf("%d",&auxi);
libros[i].ejemplares = auxi;
ingreso[i] = auxi;
printf("INGRESE AUTOR:");
fflush(stdin);
gets(auxs);
while(strlen(auxs)>50)
printf("REINGRESE AUTOR:");
fflush(stdin);
gets(auxs);
}
strcpy(libros[i].autor,auxs);
fflush(stdin);
gets(auxs);
while(strlen(auxs)>100)
fflush(stdin);
gets(auxs);
strcpy(libros[i].titulo,auxs);
i++;
do
clrscr();
printf("\n\nINGRESE OPCION:");
op = getche();
switch(op)
case '1':
clrscr();
scanf("%d",&auxi);
while(auxi<1 || auxi>TAM)
scanf("%d",&auxi);
for(i=0;i<TAM;i++)
if(auxi == libros[i].codigo)
%s",libros[i].titulo);
%s",libros[i].autor);
if(libros[i].ejemplares >1)
libros[i].ejemplares--;
prestados[i]++;
printf("\n\nLIBRO PRESTADO,
getch();
break;
else
printf("\n\nSOLO QUEDA EL
getch();
break;
break;
case '2':
clrscr();
scanf("%d",&auxi);
while(auxi<1 || auxi>TAM)
scanf("%d",&auxi);
for(i=0;i<TAM;i++)
if(auxi == libros[i].codigo)
if(libros[i].ejemplares == ingreso[i])
printf("\nERROR NO SE PRESTO
getch();
break;
else
%s",libros[i].titulo);
printf("\n\nESTA SEGURO DE
seguro = getch();
seguro = getch();
if(seguro == 's')
libros[i].ejemplares++;
printf("\n\nLIBRO
getch();
break;
else
printf("\n\nLIBRO NO
INGRESADO");
getch();
break;
break;
case '3':
// ORDENAMIENTO
for(i=0;i<TAM-1;i++)
for(j=i+1;j<TAM;j++)
if(prestados[i]<prestados[j])
auxst = libros[i];
libros[i] = libros[j];
libros[j] = auxst;
auxi = prestados[i];
prestados[i] = prestados[j];
prestados[j] = auxi;
break;
default:
getch();
}while(op!='3');
for(i=0;i<TAM;i++)
%d",libros[i].titulo,libros[i].autor,prestados[i]);
getch();
}
EJERCICIO 10
#include <stdio.h>
#include <conio.h>
#define TAM 3
struct empresa
int art;
char descripcion[100];
int stock;
float precio;
};
void main()
int i,j,auxi,flag,cod;
float auxf;
char op,seguir='n';
clrscr();
for(i=0;i<TAM;i++)
mercaderia[i].art = 0;
for(i=0;i<TAM;i++)
do
clrscr();
scanf("%d",&auxi);
while(auxi<1 || auxi>TAM)
scanf("%d",&auxi);
for(j=0,flag=0;j<TAM;j++)
if(auxi == mercaderia[j].art)
flag = 1;
break;
}while(flag == 1);
mercaderia[i].art = auxi;
fflush(stdin);
gets(mercaderia[i].descripcion);
scanf("%d",&mercaderia[i].stock);
scanf("%f",&auxf);
mercaderia[i].precio = auxf;
do
clrscr();
printf("\nELIGA OPCION:");
op = getche();
switch(op)
case '1':
do
{
clrscr();
scanf("%d",&cod);
while(cod<1 || cod>TAM)
ARTICULO:");
scanf("%d",&cod);
COMPRA:");
scanf("%d",&auxi);
// VALIDAR
if(auxi == 1)
VENDER:");
scanf("%d",&auxi);
getch();
else
printf("\nSTOCK VENDIDOS");
getch();
mercaderia[cod-1].stock-= auxi;
auxi = 0;
if(auxi == 2)
COMPRAR:");
scanf("%d",&auxi);
mercaderia[cod-1].stock+= auxi;
seguir = getch();
}while(seguir == 's');
seguir = 'n';
break;
case '2':
clrscr();
scanf("%d",&cod);
while(cod<1 || cod>TAM)
scanf("%d",&cod);
printf("\nARTICULO %d",cod);
printf("\nDESCRIPCION: %s",mercaderia[cod-
1].descripcion);
getch();
break;
case '3':
clrscr();
scanf("%d",&cod);
while(cod<1 || cod>TAM)
scanf("%d",&cod);
printf("\nARTICULO %d",cod);
printf("\nSTOCK %d",mercaderia[cod-1].stock);
printf("\nDESCRIPCION: %s",mercaderia[cod-
1].descripcion);
getch();
break;
case '4':
seguir = getch();
// VALIDAR
break;
default:
getch();
}while(seguir == 'n');
}
La estructura la definimos entre los #include o si los hubiere los #define y el void main
Definición de la estructura
void main()
{
struct ejemplo num,vecs[TAM];
Ingresos de datos
Los ingresos de datos es simil a las variables simples lo unico que hay que utilizar es el "."
(punto) y a la variable que se le hace referencia dentro de esa estructura
printf("EDAD:");
scanf("%d",&[Link]);
printf("SUELDO:");
scanf("%f",&[Link]);
printf("EDAD:");
scanf("%d",&vecs[y].edad);
printf("SUELDO:");
scanf("%f",&vecs[y].sueldo); <--- ERROR
scanf("%f",&aux);
vecs[y].sueldo = aux; <--- OK
Las estructuras que contengan una variable del tipo de dato float y declaremos un vector
de esa estructura, no se podra hacer el ingreso de dato como lo marcado "ERROR".
Mostrar datos
printf("EDAD %d",[Link]);
printf("EDAD %d",vecs[y].edad);
printf("SUELDO %f",vecs[y].sueldo);
Ordenamiento
for(y=0;y<TAM-1;y++)
for(j=y+1;j<TAM;j++)
if(vecs[y].variable > vecs[j].variable)
{
aux = vecs[y];
vecs[y] = vecs[j];
vecs[j] = aux;
}
Recordar siempre que la variable del tipo aux sea igual al tipo de estructura que estemos
ordenando
Utilize la "y" por que con la "i" tenia problemas con la fuentes de la web
Estructuras anidadas
Tener en cuenta que cuando usamos estructuras anidadas que la principal debe ser la
ultima en ser definida, en este caso es personas y las estructuras secundarias como fechas
siempre antes de la principal.
Ejemplo:
# ............
struct fechas
{
int dia, mes, anio;
};
struct personas
{
char nombre[20],apellido[20];
int edad;
struct fechas fnaci, fing;
float sueldo;
};
void main()
{
struct personas persona1;
/*
Persona1 es del tipo struct personas, es decir las variables declaradas
dentro de estruct personas ahora son parte tambien de personas1 y a su
vez las estructuras que esten dentro de la misma struct personas; en este
caso estruct fechas.
*/
// INGRESO DE DATOS
gets([Link]);
gets([Link]);
scanf("%d",&[Link]);
scanf("%d",&[Link]);
scanf("%d",&[Link]);
scanf("%d",&[Link]);
scanf("%d",&[Link]);
scanf("%d",&[Link]);
scanf("%d",&[Link]);
scanf("%d",&[Link]);
// MOSTRAR DATOS
#include <stdio.h>
#include <conio.h>
void main()
{
int numero,r,vector[10],x=0,r2;
char seguir ='s';
do
{
clrscr();
while(r<0 || r>9)
{
printf("................tiene que ser del 0 al 9:");
scanf("%d",&r);
}
printf("\n\n[No estaba con ganas para validar]");
printf("\nIngrese un n£mero del rango indicado (-32768 a 32767):");
scanf("%d",&numero);
/*
*/
if(r==9)
printf("10\t|9| <--- %d\n\n",numero);
else
printf("10\t|9|\n");
vector[r] = numero;
r2 = r;
getch();
clrscr();
x=0;
if(seguir =='s')
{
printf(", esta seguro s/n ???");
seguir = getch();
if(seguir=='n')
printf(" OK, no se borrara!");
if(seguir=='s')
{
clrscr();
printf("\nVector borrado\n**************\n");
for(r=0;r<=9;r++)// para mostrar el vector
printf("\n\n%d\t%d",x++,vector[r]= 0);
x=0;
}
}
}while(seguir=='s');
#include <conio.h>
#include <stdio.h>
int main(){
/* Comprobación de la función*/
int uno[]={2,4,5,6,7,8,9,11};
int dos[8];
printf("Array uno:\n");
escribirArray(uno,8);
copiarArray(uno,dos,8);
printf("Array dos:\n");
escribirArray(dos,8);
getch();
}
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
int main(){
int a[TAM];
int par[TAM]={0};
int impar[TAM]={0};
int i,j;
srand(time(NULL));
/*Relleno inicial del array a*/
for(i=0;i<TAM;i++){
a[i]=rand()%100+1;
}
/* Escritura del contenido del primer array*/
printf("Primer array:\n");
escribirArray(a,TAM);
/* Grabación de los pares y los impares en los otros arrays*/
for(i=0;i<TAM;i++){
if(a[i]%2==0)
par[i]=a[i];
else
impar[i]=a[i];
}
/* Escritura del array par e impar*/
printf("\nPar:\n");
escribirArray(par,TAM);
printf("\nImpar:\n");
escribirArray(impar,TAM);
/* Mezcla de ambos arrays en el array a
y escritura del resultado final*/
Ejercicio 3. Vendedores
Crear un programa llamado vendedores que cree un array de 18 X 10
indicando que poseemos una empresa de 18 vendedores cada uno de
los cuales vende 10 productos.
El array almacena los ingresos obtenidos por cada vendedor en cada
producto, de modo que un menú permite almacenar los ingresos,
revisar el total de cada vendedor y obtener los ingresos totales
#include <conio.h>
#include <stdio.h>
#define N_VENDEDORES 18
#define N_PRODUCTOS 10
int main(){
double ventas[N_VENDEDORES][N_PRODUCTOS]={0};
int resp=mostrarMenu();
int nvend, nprod;
double cantidad;
while(resp!=4){
switch(resp){
case 1:
printf("Numero de vendedor:
");scanf("%d",&nvend);
printf("Numero de producto:
");scanf("%d",&nprod);
printf("Cantidad ventida:
");scanf("%lf",&cantidad);
ventas[nvend][nprod]=cantidad;
break;
case 2:
printf("Numero de vendedor:
");scanf("%d",&nvend);
printf("Ventas total del vendedor %d=%.2lf\n",
nvend,totalVendedor(ventas,nvend));
break;
case 3:
printf("Total de ventas=%.2lf\n",
mostrarTotal(ventas));
break;
}
resp=mostrarMenu();
}
getch();
}
int mostrarMenu(){
int resp;
printf("\n\n");
printf("1) Añadir datos\n");
printf("2) Mostrar total de vendedor\n");
printf("3) Mostrar total de ventas\n");
printf("4) Salir\n");
scanf("%d",&resp);
return resp;
}
#include <conio.h>
#include <stdio.h>
#define N_FILAS 25
#define N_COLUMNAS 4
#define LIBRE 0
#define OCUPADO 1
int main(){
/* Los asientos inicialmente están libres*/
int asiento[N_FILAS][N_COLUMNAS]={0};
int resp=mostrarMenu();
while(resp!=4){
switch(resp){
case 1:
reservarAsiento(asiento);
break;
case 2:
cancelarAsiento(asiento);
break;
case 3:
mostrarOcupacion(asiento);
break;
}
resp=mostrarMenu();
}
getch();
}
int mostrarMenu(){
int resp;
printf("\n\n");
printf("1) Reservar Asiento\n");
printf("2) Cancelar Asiento\n");
printf("3) Mostrar Ocupacion\n");
printf("4) Salir\n");
scanf("%d",&resp);
return resp;
}
for(i=0;i<N_FILAS;i++){
for(j=0;j<N_COLUMNAS;j++){
printf("fila %d, columna %d ",i,j);
if(a[i][j]==LIBRE) printf("Libre\n");
else printf("Ocupado\n");
}
}
}
Ejercicio 5. Contar letras repetidas
Crear un programa que cree un array con 1000 letras mayúsculas
aleatorias y que cuenta cuántas veces aparece cada letra en el array
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
int main(){
char letra[TAM];
/* Array que contendrá las letras de la A a la Z*/
char AaZ[26];
/* contadores*/
int i,j,cont;
srand(time(NULL));
/* Relleno del array de letras */
for(i=65;i<=90;i++){
AaZ[i-65]=i;
}
/*Relleno inicial del array aleatorio*/
for(i=0;i<TAM;i++){
/*genera caracteres del ASCII 65 al 90,
de la letra A a Z */
letra[i]=rand()%26+65;
}
/* Escritura del contenido del primer array*/
printf("Array inicial:\n");
escribirArray(letra,TAM);
/* El bucle recorre el array que contiene las letras de la A
a la Z y cuenta cada vez que aparece cada letra en el array de
letras
aleatorias*/
for(i=0;i<26;i++){
cont=0;
for(j=0;j<TAM;j++){
if(AaZ[i]==letra[j]) cont++;
}
printf("La letra %c aparece %i veces\n",65+i,cont);
}
getch();
}
#include <stdio.h>
void main()
{
printf( "Escribe el nombre del amigo: " );
fflush( stdout );
scanf( "%s", &[Link] );
printf( "Escribe el apellido del amigo: " );
fflush( stdout );
scanf( "%s", &[Link] );
printf( "Escribe el número de teléfono del amigo: " );
fflush( stdout );
scanf( "%s", &[Link] );
printf( "El amigo %s %s tiene el número: %s.\n", [Link],
[Link], [Link] );
}
/*Este ejemplo estaría mejor usando gets que scanf, ya que puede haber nombres
compuestos
que scanf no cogería por los espacios.*/
Estructura básica que pide, nombre, apellido, teléfono y edad y lo muestra por pantalla
#include <stdio.h>
void main()
{
printf( "Escribe el nombre del amigo: " );
fflush( stdout );
scanf( "%s", &[Link] );
printf( "Escribe el apellido del amigo: " );
fflush( stdout );
scanf( "%s", &[Link] );
printf( "Escribe el número de teléfono del amigo: " );
fflush( stdout );
scanf( "%s", &[Link] );
printf( "El amigo %s %s tiene el número: %s.\n", [Link],
[Link], [Link] );
}
/*Este ejemplo estaría mejor usando gets que scanf, ya que puede haber nombres
compuestos
que scanf no cogería por los espacios.*/