Создать стек вещественных чисел на основе статического массива - C (СИ)

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

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

Почему не получается добавить элементы в стек?

Помогите пожалуйста.

Листинг программы
  1. #include <stdio.h>
  2. #define MAXN 100 // Максимальный размер стека.
  3. static double st[MAXN]; // Массив стека.
  4. int n; // Размер стека.
  5. void push(double x)
  6. {
  7. if (n != MAXN) // Проверим на переполнение.
  8. st[n++] = x; // Добавим новый.
  9. else
  10. printf("стек переполнен."); // Сообщение об ошибке.
  11. }
  12. double pop()
  13. {
  14. if (n != 0) // Проверим на пустоту.
  15. n--; // Уменьшим размер.
  16. else
  17. printf("стек пуст."); // Сообщение об ошибке.
  18. }
  19. double top()
  20. {
  21. if (n != 0) // Проверим на пустоту.
  22. printf("%d\n", st[n-1]); // Выведем вершину стека.
  23. else
  24. printf("стек пуст."); // Сообщение об ошибке.
  25. }
  26. int main()
  27. {
  28. int act = -1;
  29. while (act)
  30. {
  31. printf("\n1. добавление.\n2. удаление.\n3. вершина .\nиначе-выход.\n");
  32. scanf("%d", &act);
  33. switch (act)
  34. {
  35. case 1:
  36. double x();
  37. break;
  38. case 2:
  39. pop();
  40. break;
  41. case 3:
  42. top();
  43. break;
  44. default:
  45. break;
  46. }
  47. }
  48. return 0;
  49. }

Решение задачи: «Создать стек вещественных чисел на основе статического массива»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. #define MAXN 100 // Максимальный размер стека.
  4.  
  5. static double st[MAXN]; // Массив стека.
  6. int n; // Размер стека.
  7.  
  8. void push(double x)
  9. {
  10.     if (n != MAXN) // Проверим на переполнение.
  11.         st[n++] = x; // Добавим новый.
  12.     else
  13.         printf("стек переполнен."); // Сообщение об ошибке.
  14. }
  15.  
  16. void pop()
  17. {
  18.     if (n != 0) // Проверим на пустоту.
  19.         n--; // Уменьшим размер.
  20.     else
  21.         printf("стек пуст."); // Сообщение об ошибке.
  22. }
  23.  
  24. void top()
  25. {
  26.     if (n != 0) // Проверим на пустоту.
  27.         printf("%f\n", st[n-1]); // Выведем вершину стека.
  28.     else
  29.         printf("стек пуст."); // Сообщение об ошибке.
  30. }
  31.  
  32. int main()
  33. {
  34.     int act = -1;
  35.  
  36.     while (act)
  37.     {
  38.         printf("\n1. добавление.\n2. удаление.\n3. вершина .\nиначе-выход.\n");
  39.         scanf("%d", &act);
  40.  
  41.         switch (act)
  42.         {
  43.         case 1:
  44.             push(4);
  45.             break;
  46.         case 2:
  47.             pop();
  48.             break;     
  49.         case 3:
  50.             top();
  51.             break;
  52.         default:
  53.             break;
  54.         }
  55.     }
  56.  
  57.     return 0;
  58. }

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


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

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

15   голосов , оценка 3.8 из 5

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

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

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