All pastes #474488 Raw Edit

Stuff

public text v1 · immutable
·published 2007-05-06 21:20 UTC
rendered paste body
#include <stdlib.h>
#include <stdio.h>

#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]);
}