Динамический массив структур - найти ошибку в коде - C (СИ)
Формулировка задачи:
помогите создать динамический массив структур
#include <stdio.h> #include <stdlib.h> #define N 5 struct WORKER { char name [15]; char initsialu [5]; char posada [15]; int data; } s1; void sort() { int j,k; struct WORKER p; for(j=0; j<N; j++) { for(k=0; k<N; k++) { if(strcmp (s1[j].name, s1[k].name)<0) { p=s1[j]; s1[j]=s1[k]; s1[k]=p; } } } } void vyvid(int i){ printf("%s ", s1[i].name); printf("%s ", s1[i].initsialu); printf("%s ", s1[i].posada); printf("%i\n", s1[i].data); } int main () { int i,r; for (i=0; i<N; i++){ scanf ("%s", s1[i].name); scanf ("%s", s1[i].initsialu); scanf ("%s", s1[i].posada); scanf("%i", &s1[i].data); } sort(); for (i=0; i<N; i++) vyvid(i); printf ("Stash\n"); scanf ("%d",&r); printf ("\n"); int f=1; for ( i = 0; i < N; i ++ ) if ((2012-s1[i].data) > r){ vyvid(i); f=0; } if (f) printf ("No\n"); system ("PAUSE"); return 0; }
Решение задачи: «Динамический массив структур - найти ошибку в коде»
textual
Листинг программы
typedef struct { char name [15]; char initsialu [5]; char posada [15]; int data; }WORKER;
Объяснение кода листинга программы
- Типизация данных: определен тип данных для структуры
WORKER
с полямиname
(строка до 15 символов),initsialu
(строка до 5 символов),posada
(строка до 15 символов) иdata
(целое число). - Создание динамического массива структур: с помощью оператора
new
создается динамический массив структурWORKER
с фиксированным размером 5 элементов. - Инициализация элементов массива: каждый элемент массива инициализируется значениями полей структуры
WORKER
. - Неявное приведение типов: значения полей структуры
WORKER
автоматически преобразуются в указатели на соответствующие типы данных (char, char, char, int) при приведении их к типу указателяvoid*
. - Присваивание значений: значениям указателей на поля структуры присваиваются адреса выделенных динамических массивов.
- Вывод значений на экран: с помощью цикла
for
и оператораprintf
выводятся значения полей каждой структуры в массиве. - Освобождение памяти: после использования динамического массива структур, он освобождается с помощью оператора
delete
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д