1. Crear una lista con N elementos numéricos.Visualizar cinco elementos en cada fila.
Elementos de la lista
-- -- -- -- --
-- -- -- -- --
-- -- -- -- --
Pulse ENTER para continuar
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <termio.h>
#include <sys/ioctl.h>
#define STDINFD 0
#undef getc
int validar_num(char numero[50]);
char inkey(void);
void main()
{
int i,s,num,l=0;
char numero[50],c;
printf("Crear una lista con N elementos númericos.\n");
do
{
printf("Introduce cuantos numeros quieres que sea la lista: ");
fgets(numero,50,stdin);
numero[strlen(numero)-1]= 0;
s=validar_num(numero);
if(s==0&& strcmp(numero,"0")==0){s=1;}
}
while (s != 0);
num= atoi(numero);
printf(" Elementos de la lista\n");
int a[num];
for (i = 1; i<= num; i++)
{
a[i] = random()%101;
if (i%5==0)
{
printf("%5d\n",a[i]);
l++;
if(l%3==0)
{
c=0;
printf("\nPulse ENTER para continuar");
while (c!= 10)
{
c=inkey();
}
printf("\n");
}
}
else
{
printf("%5d",a[i]);
}
}
}
int validar_num(char numero[50])
{
int i=0,v=0,coma=0;
while (i<strlen(numero)&&v==0)
{
if(isdigit(numero[i])!=0)
{
i++;
}
else
{
v=1;
}
}
return v;
}
char inkey(void) {
char c;
struct termio param_ant, params;
ioctl(STDINFD,TCGETA,¶m_ant);
params = param_ant;
params.c_lflag &= ~(ICANON|ECHO);
params.c_cc[4] = 1;
ioctl(STDINFD,TCSETA,¶ms);
fflush(stdin); fflush(stderr); fflush(stdout);
read(STDINFD,&c,1);
ioctl(STDINFD,TCSETA,¶m_ant);
return c;
}
/* EOF: kpress.c */
2. Seleccionar el máximo de los números de la lista LISTA(N) y lo lleve a la última posición.
Pasar el maximo al ultimo reorganizando arraymover para atras.
#include <string.h>
#include <ctype.h>
#include <stdio.h>
int validar_num(char numero[50]);
void main()
{
int i,s,num,max,posi;
char numero[50];
printf("Crear una lista con N elementos númericos.\n");
do
{
printf("Introduce cuantos numeros quieres que sea la lista: ");
fgets(numero,50,stdin);
numero[strlen(numero)-1]= 0;
s=validar_num(numero);
if(s==0&& strcmp(numero,"0")==0){s=1;}
}
while (s != 0);
num= atoi(numero);
printf(" Elementos de la lista\n");
int a[num],b[num];
for (i = 1; i<= num; i++)
{
a[i] = random()%101;
if(i==1){max=a[1];}
if (a[i]>max)
{
max=a[i];
posi=i;
}
if (i%5==0)
{
printf("%5d\n",a[i]);
}
else
{
printf("%5d",a[i]);
}
}
for(i=num; i>=posi;i-=1)
{
b[i-1]=a[i];
}
for(i=0; i&alt;posi;i++)
{
b[i]=a[i];
}
b[num]=a[posi];
printf(" \nTabla cambiada\n");
for (i = 1; i<= num; i++)
{
if (i%5==0)
{
printf("%5d\n",b[i]);
}
else
{
printf("%5d",b[i]);
}
}
printf("\nmaximo= %d, posicion = %d",max,posi);
}
int validar_num(char numero[50])
{
int i=0,v=0,coma=0;
while (i<strlen(numero)&&v==0)
{
if(isdigit(numero[i])!=0)
{
i++;
}
else
{
v=1;
}
}
return v;
}
3. Hallar el mínimo y la posición que ocupa en una lista de N elementos. L(N).
#include <string.h>
#include <ctype.h>
#include <stdio.h>
int validar_num(char numero[50]);
void main()
{
int i,s,num,min,posi;
char numero[50];
printf("Crear una lista con N elementos númericos.\n");
do
{
printf("Introduce cuantos numeros quieres que sea la lista: ");
fgets(numero,50,stdin);
numero[strlen(numero)-1]= 0;
s=validar_num(numero);
if(s==0&& strcmp(numero,"0")==0){s=1;}
}
while (s != 0);
num= atoi(numero);
printf(" Elementos de la lista\n");
int a[num],b[num];
for (i = 1; i<= num; i++)
{
a[i] = random()%101;
if(i==1){min=a[1];}
if (a[i]<min)
{
min=a[i];
posi=i;
}
if (i%5==0)
{
printf("%5d\n",a[i]);
}
else
{
printf("%5d",a[i]);
}
}
printf("\nminimo= %d, posicion = %d",min,posi);
}
int validar_num(char numero[50])
{
int i=0,v=0,coma=0;
while (i<strlen(numero)&&v==0)
{
if(isdigit(numero[i])!=0)
{
i++;
}
else
{
v=1;
}
}
return v;
}
4. Dada una lista numérica L(N) generar a partir de ella otra lista , NUEVA(N) que contenga los elementos de la lista anterior multiplicados por un número determinado.Imprimir ambas listas.
#include <string.h>
#include <ctype.h>
#include <stdio.h>
int validar_num(char numero[50]);
void main()
{
int i,s,num,mul;
char numero[50];
printf("Crear una lista con N elementos númericos.\n");
do
{
printf("Introduce cuantos numeros quieres que sea la lista: ");
fgets(numero,50,stdin);
numero[strlen(numero)-1]= 0;
s=validar_num(numero);
if(s==0&& strcmp(numero,"0")==0){s=1;}
}
while (s != 0);
num= atoi(numero);
printf(" Elementos de la lista\n");
int a[num],b[num];
for (i = 1; i<= num; i++)
{
a[i] = random()%101;
if (i%5==0)
{
printf("%5d\n",a[i]);
}
else
{
printf("%5d",a[i]);
}
}
do
{
printf("Introduce numero que quieres multiplicar la lista: ");
fgets(numero,50,stdin);
numero[strlen(numero)-1]= 0;
s=validar_num(numero);
}
while (s != 0);
mul=atoi(numero);
printf(" Tabla cambiada\n");
for (i = 1; i<= num; i++)
{
b[i]=a[i]*mul;
if (i%5==0)
{
printf("%5d\n",b[i]);
}
else
{
printf("%5d",b[i]);
}
}
}
int validar_num(char numero[50])
{
int i=0,v=0,coma=0;
while (i<strlen(numero)&&v==0)
{
if(isdigit(numero[i])!=0)
{
i++;
}
else
{
v=1;
}
}
return v;
}
5. Dada la lista numérica L(N) generar a partir de ella otra lista que contenga los elementos que están en las posiciones pares de L(N).
#include <string.h>
#include <ctype.h>
#include <stdio.h>
int validar_num(char numero[50]);
void main()
{
int i,s,num,c=0;
char numero[50];
printf("Crear una lista con N elementos númericos.\n");
do
{
printf("Introduce cuantos numeros quieres que sea la lista: ");
fgets(numero,50,stdin);
numero[strlen(numero)-1]= 0;
s=validar_num(numero);
if(s==0&& strcmp(numero,"0")==0){s=1;}
}
while (s != 0);
num= atoi(numero);
printf(" Elementos de la lista\n");
int a[num];
for (i = 1; i<= num; i++)
{
a[i] = random()%101;
if (i%5==0)
{
printf("%5d\n",a[i]);
}
else
{
printf("%5d",a[i]);
}
}
printf("\nTabla con numero de posiciones pares cambiada\n");
for (i = 1; i<= num; i++)
{
if(i%2==0)
{
c++;
if (c%5==0)
{
printf("%5d\n",a[i]);
}
else
{
printf("%5d",a[i]);
}
}
}
}
int validar_num(char numero[50])
{
int i=0,v=0,coma=0;
while (i<strlen(numero)&&v==0)
{
if(isdigit(numero[i])!=0)
{
i++;
}
else
{
v=1;
}
}
return v;
}
6. Un restaurante guarda en la lista PLATOS(20) los platos de que dispone y en otra lista paralela PRECIO(20) el valor de cada plato. Nuestro ejercicio debe mostrar al usuario el menú por pantalla , que el usuario escoja los platos que quiere comer y una vez escogidos, sacar la factura de un cliente de la siguiente forma:
RESTAURANTE :EL BUEN COMER
Concepto Cantidad Importe
-- -- --
-- -- --
.
.
.
Total: ---
#include <string.h>
#include <ctype.h>
#include <stdio.h>
int validar_num(char numero[50]);
void main()
{
int i,s,num,c=0,b,a=0,tope=0,suma=0;
int elegido[50],mul[50],total[50],precio[20]={10,20,30,40,50,60,70,80,90,100,10,20,30,40,50,60,70,80,90,100};
char numero[50];
char* platos[20]={"Espaguetis","Macarrones","Garbanzos","Lentejas","Arroz","Migas","Gachas","Sardinas","Entrecot","Fruta","Chocolate","Yogurt","Solomillo","Filete","Bistec","Criadillas","Besugo","Merluza","Anguilas","Salmon"};
printf("Restaurante el buen comer\nListados de platos\n");
for (i = 0; i< 20; i++)
{
if ((1+i)%3==0)
{
printf("%2d %s\t%3d €\n",i+1,platos[i],precio[i]);
}
else
{
printf("%2d %s\t%3d € ",i+1,platos[i],precio[i]);
}
}
do
{
do
{
printf("\nIntroduce el numero de plato que quieres: ");
fgets(numero,50,stdin);
numero[strlen(numero)-1]= 0;
s=validar_num(numero);
if(s==0)
{
num= atoi(numero);
if(num > 0 && num < 21)
{
if (c==0 && tope==0)
{
elegido[c]=num;
mul[c]=1;
tope++;
}
else
{
for (b=0;b<=c;b++)
{
if (num == elegido[b])
{
mul[b]++;
a=1;
}
}
if(a==0)
{
c++;
elegido[c]=num;
mul[c]=1;;
}
a=0;
}
}
else{s=1;}
}
}
while (s != 0);
do
{
printf("Quieres escoger otro plato, escribe s o n: ");
fgets(numero,50,stdin);
numero[strlen(numero)-1]= 0;
}
while (strcmp(numero,"s") != 0 && strcmp(numero,"n") != 0);//strcmp compara dos cadenas si sale 0 es igual
}
while(strcmp(numero,"n") != 0);
printf("\tRESTAURANTE :EL BUEN COMER\n");
printf("ID Concepto Cantidad Importe\n");
for(i=0;i<=c;i++)
{
total[i]=precio[elegido[i]-1]*mul[i];
suma=suma+total[i];
printf("%2d %s\t%8d\t%7d\n",elegido[i],platos[elegido[i]-1],mul[i],total[i]);
}
printf("\t\t\t TOTAL%7d",suma);
}
int validar_num(char numero[50])
{
int i=0,v=0,coma=0;
while (i<strlen(numero)&&v==0)
{
if(isdigit(numero[i])!=0)
{
i++;
}
else
{
v=1;
}
}
return v;
}
No hay comentarios:
Publicar un comentario