Я работаю над программой со следующим описанием:
Напишите правильную программу на C, которая использует функцию для приема пользовательских данных и обновления членов структуры. Структура должна содержать три члена: Фамилия, Пол и Возраст. Фамилия не должна превышать 30 символов. Программа и функция должны быть достаточно гибкими, чтобы с любым количеством членов структуры.
Экземпляры структуры должны быть созданы в основной функции. Функция должна вызываться для каждого экземпляра для заполнения членов экземпляра. Назначенные значения элементов должны отображаться в основной функции.
Ввод и вывод должны работать для любого количества экземпляров. Однако для целей тестирования сделайте это для двух экземпляров структуры.
Не создавать никаких массивов. Основная программа и функции должны быть оптимизированы (минимальное количество переменных, избегать временных переменных)
Я не могу использовать массивы, поэтому я выбрал следующий параметр кода. Есть ли более эффективный способ сделать это?
#include <stdio.h>
#include<string.h>
struct member {
char lastName[30];
char gender;
int age;
};
void populateStruct(struct member person);
// begin main function
int main(void){
int i=0;
struct member person1={0};
struct member person2={0};
populateStruct(person1);
populateStruct(person2);
return 0;
} // end main
// function prototypes
void populateStruct(struct member person){
printf("\nEnter last name: ");
scanf(" %s", &person.lastName);
printf("\nEnter gender: ");
scanf(" %c", &person.gender);
printf("\nEnter age: ");
scanf(" %d", &person.age);
printf("The information you entered is:\n");
printf("\n");
printf(" %s ", person.lastName);
printf(" %c ", person.gender);
printf(" %d ", person.age);
printf("\n");
}