Ejercicios Resueltos de Programación en C: Manipulación de Datos y Estructuras
Clasificado en Informática
Escrito el en español con un tamaño de 4,51 KB
Ejercicios Resueltos de Programación en C
Separar Nombre y Apellido
Se ingresa por teclado el nombre y apellido de una persona en alguna de las siguientes formas:
- Nombre Apellido
- Apellido, Nombre
El programa deberá separar el nombre y el apellido en distintos vectores y luego mostrarlos en pantalla.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char nomcomp[50];
char nombre[30];
char apellido[30];
int a = 0, j = 0;
memset(nomcomp, '\0', sizeof(nomcomp));
memset(apellido, '\0', sizeof(apellido));
memset(nombre, '\0', sizeof(nombre));
printf("Ingrese un nombre completo \n");
fflush(stdin);
gets(nomcomp);
while (nomcomp[a] != ' ') {
nombre[a] = nomcomp[a];
a++;
if (tolower(nomcomp[a]) != nomcomp[a]) {
if (tolower(nomcomp[a - 1]) == nomcomp[a - 1]) {
a--;
break;
}
}
}
while (a < strlen(nomcomp)) {
a++;
apellido[j] = nomcomp[a];
j++;
}
printf("El nombre es %s y el apellido es %s ", nombre, apellido);
getchar();
return 0;
}
Ordenar Nombres Alfabéticamente
Ingresar 10 nombres, ordenarlos de la A-Z y listarlos.
#include <stdio.h>
#include <string.h>
int main() {
char nombres[10][10];
char temp[10];
int i, j, k, l;
for (i = 0; i < 10; i++) {
printf("Ingresar un nombre \n");
fflush(stdin);
gets(nombres[i]);
}
for (j = 1; j < 10; j++) {
for (k = 0; k < j; k++) {
if (strcmp(nombres[j], nombres[k]) < 0) {
strcpy(temp, nombres[j]);
strcpy(nombres[j], nombres[k]);
strcpy(nombres[k], temp);
}
}
}
for (l = 0; l < 10; l++)
printf("%s \n", nombres[l]);
fflush(stdin);
getchar();
return 0;
}
Insertar Valores Numéricos en Vector Ordenado
Insertar valores numéricos en un vector de diez números ordenados previamente. Luego de cada inserción, listar los valores.
#include <string.h>
#include <stdio.h>
int main() {
int i, j, k, l, m = 0, n, temp, ins, v0, flag = 0, valor[30];
char vsal;
int vsize = 10; // Inicializar el tamaño del vector
for (i = 0; i < 10; i++) {
printf("Ingresar 10 valores (Faltan %d) ", 10 - i);
scanf("%d", &valor[i]);
}
for (j = 1; j < 10; j++) {
for (k = 0; k < j; k++) {
if (valor[j] < valor[k]) {
temp = valor[j];
valor[j] = valor[k];
valor[k] = temp;
}
}
}
do {
printf("Ingrese el valor a insertar: ");
scanf("%d", &ins);
m = 0;
flag = 0;
vsize++;
do {
if (valor[m] > ins || valor[m] == '\0')
flag = 1;
m++;
} while (flag == 0);
m--;
for (n = vsize; n >= m; n--) {
if (n == m)
valor[n] = ins;
else
valor[n] = valor[n - 1];
}
for (l = 0; l < vsize; l++)
printf("%d \n", valor[l]);
printf("Desea salir (S/N)? \n");
fflush(stdin);
scanf(" %c", &vsal);
} while (vsal != 's');
return 0;
}
Cargar y Ordenar Vector de Estructuras
Cargar un vector de estructuras, ordenarlo de A-Z y luego poder insertar datos.
#include <string.h>
#include <stdio.h>
int main() {
int i, j, k, tempnum, edadins, m, flag, v0, n, l;
struct datos {
char nombre[80];
int edad;
};
char temp[80], nombreins[80], vsal;
struct datos vector[20];
int vsize = 10; // Inicializar el tamaño del vector
for (i = 0; i < 10; i++) {
printf("Ingrese un nombre \n");
fflush(stdin);
gets(vector[i].nombre);
printf("Ingrese la edad \n");
scanf("%d", &vector[i].edad);
}
for (j = 1; j < 10; j++) {
for (k = 0; k < j; k++) {
if (strcmp(vector[j].nombre, vector[k].nombre) < 0) {
strcpy(temp, vector[j].nombre);
strcpy(vector[j].nombre, vector[k].nombre);
strcpy(vector[k].nombre, temp);
tempnum = vector[j].edad;
vector[j].edad = vector[k].edad;
vector[k].edad = tempnum;
}
}
}
strcpy(vector[10].nombre, "");
do {
printf("Ingrese el nombre a insertar: ");
fflush(stdin);
gets(nombreins);
printf("Ingrese la edad: ");
scanf("%d", &edadins);
m = 0;
flag = 0;
vsize++;
do {
if (strcmp(vector[m].nombre, nombreins) > 0 || strcmp(vector[m].nombre, "") == 0)
flag = 1;
m++;
} while (flag == 0);
m--;
for (n = vsize; n >= m; n--) {
if (n == m) {
strcpy(vector[n].nombre, nombreins);
vector[n].edad = edadins;
}
else {
strcpy(vector[n].nombre, vector[n - 1].nombre);
vector[n].edad = vector[n - 1].edad;
}
}
for (l = 0; l < vsize; l++)
printf("%s %d\n", vector[l].nombre, vector[l].edad);
printf("Desea salir (S/N)? \n");
fflush(stdin);
scanf(" %c", &vsal);
} while (vsal != 's');
return 0;
}