Вывод содержимого массива структур на экран - 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;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Определяем размер массива в переменной SIZE
  3. Создаем структуру date_by_date, которая содержит два массива символов
  4. В функции main() объявляем указатель z на структуру date_by_date и переменную k для хранения размера массива
  5. Запрашиваем у пользователя размер массива и проверяем его на корректность
  6. Выделяем память под массив структур date_by_date
  7. В цикле запрашиваем у пользователя данные для заполнения структуры date_by_date и сохраняем их в массиве z
  8. Выводим разделительную строку
  9. В цикле выводим на экран содержимое массива z
  10. Освобождаем память, выделенную под массив z
  11. Завершаем функцию main() и программу

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы