Переделать программу с использованием указателей - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Прошу помощи, переделать программу с использованием указателей.
Листинг программы
  1. #include <stdio.h>
  2. int main()
  3. {
  4. struct Boln{char FIO[50]; char pol[20]; int davlenie_v; int davlenie_n; int vozrast; } st[100];
  5. int i,k;
  6. puts("vvedite kol-vo patients");
  7. scanf("%d",&k);
  8. if ((k<1)||(k>40))
  9. {printf("error!\n");
  10. getch();
  11. return;}
  12. puts("vvedite svedeniya o patients:FIO, vozrast, pol, davlenie nijnie i verhnie");
  13. for(i=0; i<k; ++i)
  14. {
  15. printf("familia_FIO ");
  16. scanf("%s", st[i].FIO);
  17.  
  18. printf("pol: ");
  19. scanf("%s", st[i].pol);
  20. printf("age: ");
  21. scanf("%d", &st[i].vozrast);
  22. printf(" vvedite verhnie_davlenie i nijnyae: ");
  23. scanf("%d", &st[i].davlenie_v);
  24. printf("na \n");
  25. scanf("%d", &st[i].davlenie_n);
  26.  
  27. printf("\n"); }
  28. for(i=0; i<k; ++i)
  29. {
  30. if ((st[i].davlenie_v >=140) || (st[i].davlenie_n >=140) )
  31. printf("%s %s %d %d %d \n ", st[i].FIO, st[i].pol, st[i].vozrast, st[i].davlenie_v, st[i].davlenie_n); }
  32. getch();
  33. return 0;

Решение задачи: «Переделать программу с использованием указателей»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct _Boln
  5. {
  6.         char FIO[50];
  7.         char pol[20];
  8.         int davlenie_v;
  9.         int davlenie_n;
  10.         int vozrast;
  11. };
  12. typedef struct _Boln Boln;
  13.  
  14. main()
  15. {
  16.       int i,k;
  17.       Boln *pArray;
  18.      
  19.       pArray = (Boln*)malloc(sizeof(Boln)*100);
  20.      
  21.       puts("vvedite kol-vo patients");
  22.       scanf("%d",&k);
  23.       if ((k < 1)||(k > 40))
  24.       {
  25.            printf("error!\n");
  26.            getch();
  27.            return;
  28.            }
  29.            
  30.       puts("vvedite svedeniya o patients:FIO, vozrast, pol, davlenie nijnie i verhnie");
  31.       for(i=0; i < k; ++i)
  32.       {
  33.                printf("familia_FIO ");
  34.                scanf("%s", pArray[i].FIO);
  35.                printf("pol: ");
  36.                scanf("%s", pArray[i].pol);
  37.                printf("age: ");
  38.                scanf("%d", &pArray[i].vozrast);
  39.                printf(" vvedite verhnie_davlenie i nijnyae: ");
  40.                scanf("%d", &pArray[i].davlenie_v);
  41.                printf("na \n");
  42.                scanf("%d", &pArray[i].davlenie_n);
  43.                printf("\n");
  44.                }
  45.  
  46.                for(i=0; i<k; ++i)
  47.                {
  48.                         if ((pArray[i].davlenie_v >=140) || (pArray[i].davlenie_n >=140))
  49.                         printf("%s %s %d %d %d \n ", pArray[i].FIO, pArray[i].pol, pArray[i].vozrast, pArray[i].davlenie_v, pArray[i].davlenie_n); }
  50.                         getch();
  51. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы