Переделать программу с использованием указателей - C (СИ)
Формулировка задачи:
Прошу помощи, переделать программу с использованием указателей.
Листинг программы
- #include <stdio.h>
- int main()
- {
- struct Boln{char FIO[50]; char pol[20]; int davlenie_v; int davlenie_n; int vozrast; } st[100];
- int i,k;
- puts("vvedite kol-vo patients");
- scanf("%d",&k);
- if ((k<1)||(k>40))
- {printf("error!\n");
- getch();
- return;}
- puts("vvedite svedeniya o patients:FIO, vozrast, pol, davlenie nijnie i verhnie");
- for(i=0; i<k; ++i)
- {
- printf("familia_FIO ");
- scanf("%s", st[i].FIO);
- printf("pol: ");
- scanf("%s", st[i].pol);
- printf("age: ");
- scanf("%d", &st[i].vozrast);
- printf(" vvedite verhnie_davlenie i nijnyae: ");
- scanf("%d", &st[i].davlenie_v);
- printf("na \n");
- scanf("%d", &st[i].davlenie_n);
- printf("\n"); }
- for(i=0; i<k; ++i)
- {
- if ((st[i].davlenie_v >=140) || (st[i].davlenie_n >=140) )
- printf("%s %s %d %d %d \n ", st[i].FIO, st[i].pol, st[i].vozrast, st[i].davlenie_v, st[i].davlenie_n); }
- getch();
- return 0;
Решение задачи: «Переделать программу с использованием указателей»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- struct _Boln
- {
- char FIO[50];
- char pol[20];
- int davlenie_v;
- int davlenie_n;
- int vozrast;
- };
- typedef struct _Boln Boln;
- main()
- {
- int i,k;
- Boln *pArray;
- pArray = (Boln*)malloc(sizeof(Boln)*100);
- puts("vvedite kol-vo patients");
- scanf("%d",&k);
- if ((k < 1)||(k > 40))
- {
- printf("error!\n");
- getch();
- return;
- }
- puts("vvedite svedeniya o patients:FIO, vozrast, pol, davlenie nijnie i verhnie");
- for(i=0; i < k; ++i)
- {
- printf("familia_FIO ");
- scanf("%s", pArray[i].FIO);
- printf("pol: ");
- scanf("%s", pArray[i].pol);
- printf("age: ");
- scanf("%d", &pArray[i].vozrast);
- printf(" vvedite verhnie_davlenie i nijnyae: ");
- scanf("%d", &pArray[i].davlenie_v);
- printf("na \n");
- scanf("%d", &pArray[i].davlenie_n);
- printf("\n");
- }
- for(i=0; i<k; ++i)
- {
- if ((pArray[i].davlenie_v >=140) || (pArray[i].davlenie_n >=140))
- printf("%s %s %d %d %d \n ", pArray[i].FIO, pArray[i].pol, pArray[i].vozrast, pArray[i].davlenie_v, pArray[i].davlenie_n); }
- getch();
- }
Объяснение кода листинга программы
- Объявление структуры данных
Boln
с полями: FIO, pol, davlenie_v, davlenie_n, vozrast. - Создание указателя на структуру
Boln
с помощью ключевого слова typedef. - В функции main() создается указатель на массив структур
Boln
с помощью оператора malloc(). - Пользователю предлагается ввести количество пациентов.
- Если пользователь вводит число меньше 1 или больше 40, программа выводит сообщение об ошибке и завершается.
- Пользователю предлагается ввести данные о пациентах: FIO, vozrast, pol, davlenie_v и davlenie_n.
- Данные сохраняются в соответствующих полях структуры
Boln
. - Для каждого пациента проверяется, попадают ли значения davlenie_v и davlenie_n в диапазон от 140 до 280.
- Если хотя бы одно из значений попадает в этот диапазон, программа выводит на экран данные о пациенте.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д