Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct experiment
- {
- int amount;
- double *results;
- }experiment_t;
- experiment_t *journal_create(experiment_t* journal, int max_size)
- {
- journal = malloc(sizeof(experiment_t) * max_size);
- if (!journal)
- return NULL;
- for (int i = 0; i < max_size; i++)
- (journal + i) -> results = NULL;
- return journal;
- }
- void j_delete(experiment_t* journal, int size)
- {
- for (int i = 0; i < size; i++)
- {
- free((journal + i) -> results);
- (journal + i) -> results = NULL;
- }
- free(journal);
- return;
- }
- experiment_t *journal_input(experiment_t* journal, int *size, int max_size)
- {
- int amount;
- if ((scanf("%i", &amount) != 1) || amount == 0)
- {
- j_delete(journal, *size);
- return NULL;
- }
- (journal + *size) -> amount = amount;
- (journal + *size) -> results = malloc(sizeof(double) * amount);
- if (!((journal + *size) -> results))
- {
- j_delete(journal, *size);
- return NULL;
- }
- for (int i = 0; i < amount; i++)
- {
- if (scanf("%lf", (((journal + *size) -> results) + i)) != 1)
- {
- j_delete(journal, *size);
- return NULL;
- }
- }
- (*size)++;
- return journal;
- }
- void journal_output(experiment_t *journal, int size)
- {
- for(int i = 0; i < size; i++)
- {
- printf("res of experiment %d is", i);
- for(int j = 0; j < (journal + i) -> amount; j++)
- printf("%lf", *(((journal + i) -> results) + j));
- printf("\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement