Как написать функцию чтения структурной переменной?

Мне нужно написать функцию, которая считывает с клавиатуры переменную структурного типа, и функцию, отображающую переменную структурного типа. Впоследствии я должен использовать эти функции для чтения и отображения n элементов структуры. Вот что успел написать, но выглядит не очень правильно и логично. Буду очень рад помочь. Вот мой код:

#include <stdio.h>


 struct data{
    int d, m, y;
}dt;


void readData(struct data element){
    printf("\nData format dd-mm-yyyy : ");
    scanf("%d %d %d", &element.d,&element.m,&element.y);
}

void read(struct data element,int n){
    for(int i = 0; i < n; i++){
        readData(element);
    }
}
void display(struct data element){

     printf("\n %d.%d.%d\n",element.d,element.m,element.y);

}
void displayN(struct data element, int n){
    for(int i = 0; i < n; i++){
        display(element);
    }
}
int main() {
struct data dd1;
    read(dd1,3);
    displayN(dd1,3);

    return 0;
}
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
2
0
11
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы хотите использовать массив.

#include <stdio.h>


struct data{
    int d, m, y;
}dt;

/* use pointer to an element to modify the data */
void readData(struct data *element){
    printf("\nData format dd-mm-yyyy : ");
    scanf("%d %d %d", &element->d,&element->m,&element->y);
}

/* use an array to read data (just syntax sugar, this argument element is actually a pointer) */
void read(struct data element[],int n){
    for(int i = 0; i < n; i++){
        readData(&element[i]);
    }
}

/* you don't need to use a pointer here because the value is just printed and not changed */
void display(struct data element){

     printf("\n %d.%d.%d\n",element.d,element.m,element.y);

}

/* use an array to print multiple data */
void displayN(struct data element[], int n){
    for(int i = 0; i < n; i++){
        display(element[i]);
    }
}

/* define the number of elements and use that to avoid typo */
#define N 3

int main(void) {
    struct data dd1[N]; /* declare an array */
    read(dd1,N);
    displayN(dd1,N);

    return 0;
}

Другие вопросы по теме