Ir al contenido

Structs (arreglos de registros)

Un struct agrupa varios datos relacionados en una sola variable. En Computacion II esto se usa para arreglos de registros (por ejemplo, inventario de productos).

struct Producto {
int codigo;
char descripcion[40];
int cantidad;
double precio;
};
#include <iostream>
#include <cstring>
struct Producto {
int codigo;
char descripcion[40];
int cantidad;
double precio;
};
int buscarProducto(const Producto inv[], int n, int codigo) {
for (int i = 0; i < n; i++) {
if (inv[i].codigo == codigo) return i;
}
return -1;
}
int main() {
const int MAX = 50;
Producto inv[MAX];
int n = 0; // cantidad usada
// agregar un producto
if (n < MAX) {
inv[n].codigo = 1001;
std::strcpy(inv[n].descripcion, "Arroz");
inv[n].cantidad = 10;
inv[n].precio = 2.5;
n++;
}
int idx = buscarProducto(inv, n, 1001);
if (idx != -1) {
std::cout << inv[idx].descripcion << " stock=" << inv[idx].cantidad << "\n";
}
return 0;
}

Para el ejercicio de inventario se pide listar por stock de mayor a menor. Un enfoque simple:

void ordenarPorStockDesc(Producto inv[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (inv[j].cantidad < inv[j + 1].cantidad) {
Producto tmp = inv[j];
inv[j] = inv[j + 1];
inv[j + 1] = tmp;
}
}
}
}