Переделать программу с использованием указателей - 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.
- Если хотя бы одно из значений попадает в этот диапазон, программа выводит на экран данные о пациенте.