Вывод содержимого массива структур на экран - C (СИ)
Формулировка задачи:
Сваял структуру:
Как содержимое на экран вывести?
#include <stdio.h>
#include <string.h>
#define SIZE 25
struct date_by_date
{
char girlfriend [SIZE];
char meeting [SIZE];
}diary[5];
void girlfriends()
{
int i, j;
for(i=0;i<5;i++)
{puts ("Enter her name:");
gets (diary[i].girlfriend);}
}
void meetings()
{
int i, j;
for(i=0;i<5;i++)
{puts ("\nEnter the meeting place:");
gets (diary[i].meeting);}
}
int main()
{
girlfriends();
meetings();
}
ф-и printf и gets, при обращении к diary[i].girlfriend и diary[i].meeting работать не желают, в чем ошибка?
Решение задачи: «Вывод содержимого массива структур на экран»
textual
Листинг программы
#include <stdio.h>
#define SIZE 25
typedef struct _date_by_date
{
char girlfriend [SIZE];
char meeting [SIZE];
} date_by_date;
int main()
{
date_by_date* z;
int i,k=0;
printf("Enter size of diary:\n");
scanf ("\n%d",&k);
if( k<=0 ) return 0;
// выделение памяти
z = (date_by_date*) malloc( k * sizeof(date_by_date));
for(i=0;i<k;i++) {
printf("Enter her name:\n");
scanf("%s", z[i].girlfriend);
printf("Enter the meeting place:\n");
scanf ("\n%s", z[i].meeting);
}
printf("----------------------------\n");
for(i=0;i<k;i++) {
printf("%s"" ", z[i].girlfriend);
printf("%s\n", z[i].meeting);
printf("----------------------------\n");
}
free(z);// освобождение памяти
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем размер массива в переменной SIZE
- Создаем структуру date_by_date, которая содержит два массива символов
- В функции main() объявляем указатель z на структуру date_by_date и переменную k для хранения размера массива
- Запрашиваем у пользователя размер массива и проверяем его на корректность
- Выделяем память под массив структур date_by_date
- В цикле запрашиваем у пользователя данные для заполнения структуры date_by_date и сохраняем их в массиве z
- Выводим разделительную строку
- В цикле выводим на экран содержимое массива z
- Освобождаем память, выделенную под массив z
- Завершаем функцию main() и программу