Переделать программу с использованием указателей - 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();
}

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

  1. Объявление структуры данных Boln с полями: FIO, pol, davlenie_v, davlenie_n, vozrast.
  2. Создание указателя на структуру Boln с помощью ключевого слова typedef.
  3. В функции main() создается указатель на массив структур Boln с помощью оператора malloc().
  4. Пользователю предлагается ввести количество пациентов.
  5. Если пользователь вводит число меньше 1 или больше 40, программа выводит сообщение об ошибке и завершается.
  6. Пользователю предлагается ввести данные о пациентах: FIO, vozrast, pol, davlenie_v и davlenie_n.
  7. Данные сохраняются в соответствующих полях структуры Boln.
  8. Для каждого пациента проверяется, попадают ли значения davlenie_v и davlenie_n в диапазон от 140 до 280.
  9. Если хотя бы одно из значений попадает в этот диапазон, программа выводит на экран данные о пациенте.

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


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

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

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