#include #include #define TEXT_WIDTH 20 #define VALUE_WIDTH 13 struct element_t{ int atomic; char *name; char *symbol; char *class; double weight; int electrons[7]; }; struct element_t scan_element(); void print_element(struct element_t e); int main(int argc, char **argv){ struct element_t sodium; sodium = scan_element(); print_element(sodium); return 0; } struct element_t scan_element(){ struct element_t e; e.name = malloc(10*sizeof(char)); e.symbol = malloc(3*sizeof(char)); e.class = malloc(15*sizeof(char)); printf("Please enter the element properties: \n"); scanf("%d %s %s %s %lf %d %d %d %d %d %d %d", &e.atomic, e.name, e.symbol, e.class, &e.weight, &e.electrons[0], &e.electrons[1], &e.electrons[2], &e.electrons[3], &e.electrons[4], &e.electrons[5], &e.electrons[6] ); printf("%f\n", e.weight); return e; } void print_element(struct element_t e){ printf("%-*s: %*d\n", TEXT_WIDTH, "Atomic number", VALUE_WIDTH, e.atomic); printf("%-*s: %*s\n", TEXT_WIDTH, "Name", VALUE_WIDTH, e.name); printf("%-*s: %*s\n", TEXT_WIDTH, "Symbol", VALUE_WIDTH, e.symbol); printf("%-*s: %*s\n", TEXT_WIDTH, "Class", VALUE_WIDTH, e.class); printf("%-*s: %*f\n", TEXT_WIDTH, "Weight", VALUE_WIDTH, e.weight); printf("%-*s: %d %d %d %d %d %d %d\n", TEXT_WIDTH, "Electrons", e.electrons[0], e.electrons[1], e.electrons[2], e.electrons[3], e.electrons[4], e.electrons[5], e.electrons[6]); }