Как правильно использовать Switch() - C (СИ)

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

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

Добрый вечер, пишу программу с использованием SWITCH() Суть проги: Напишите программу, которая вычисляет площадь поверхности плоских фигур (квадрат, треугольник, прямоугольник) в В зависимости от выбранного варианта 1 (квадрат), 2 (площадь), 3 (прямоугольник). С помощью переключателя SWITCH ().
Листинг программы
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <math.h>
  4. #include<stdlib.h>
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. float a,b,area;
  10. int square, rectangle, triangle;
  11. int square=1, rectangle=2, triangle=3;
  12. printf("Programm calculate areas of the figures \n");
  13. printf("square=1\n");
  14. printf("rectangle=2\n");
  15. printf("triangle=3\n");
  16. printf("Please choose figure: \n");
  17. scanf ("%d", &square, &rectangle, &triangle);
  18. switch (square= '1', rectangle= '2' , triangle= '3')
  19. {
  20. case '1': area = a * b; break;
  21. {
  22. printf("Enter a: \n");
  23. scanf ("%d", &a);
  24. printf("Enter b: \n");
  25. scanf ("%d", &b);
  26. }
  27. case '2': area = a * b; break;
  28. {
  29. printf("Enter a: \n");
  30. scanf ("%d", &a);
  31. printf("Enter b: \n");
  32. scanf ("%d", &b);
  33. }
  34. case '3': area = 0.5*(a*b) ; break;
  35. {
  36. printf("Enter a(base): \n");
  37. scanf ("%d", &a);
  38. printf("Enter b(hight): \n");
  39. scanf ("%d", &b);
  40. }
  41. }
  42.  
  43. }

внимание код не работает, не знаю почему.

вот более менее рабочий
Листинг программы
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include<stdlib.h>
  5.  
  6. int main()
  7. {
  8. float a,b,area;
  9. int square, rectangle, triangle;
  10. int f;
  11. int c=1, d=2, e=3;
  12. printf("Programm calculate areas of the figures \n");
  13. printf("square=1\n");
  14. printf("rectangle=2\n");
  15. printf("triangle=3\n");
  16. printf("Please choose figure: ");
  17. scanf ("%d", &f);
  18. switch (f)
  19. {
  20. case 1: area = a * b;
  21. printf("Enter a: \n");
  22. scanf ("%d", &a);
  23. printf("Enter b: \n");
  24. scanf ("%d", &b);
  25. square = a * b;
  26. printf("Area = \n", &square);
  27. break;
  28. case 2: area = a * b; break;
  29. printf("Enter a: \n");
  30. scanf ("%d", &a);
  31. printf("Enter b: \n");
  32. scanf ("%d", &b);
  33. case 'd=3': area = 0.5*(a*b) ; break;
  34. printf("Enter a(base): \n");
  35. scanf ("%d", &a);
  36. printf("Enter b(hight): \n");
  37. scanf ("%d", &b);
  38. }
  39.  
  40. }
последняя версия рабочая но не выводит правильный ответ
Листинг программы
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5.  
  6. int main()
  7. {
  8. float a,b, area;
  9. int s, r, t;//square, rectangle, triangle
  10. int funk;
  11. int c=1, d=2, e=3;
  12. printf("Programm calculate areas of the figures \n");
  13. printf("square=1\n");
  14. printf("rectangle=2\n");
  15. printf("triangle=3\n");
  16. printf("Please choose figure: ");
  17. scanf ("%d", &funk);
  18. switch (funk)
  19. {
  20. case 1: //square
  21. printf("Enter a: ");
  22. scanf ("%f", &a);
  23. printf("Enter b: ");
  24. scanf ("%f", &b);
  25. s=a*b;
  26. printf("Area=%f", s);
  27. break;
  28. case 2: // rectangle
  29. printf("Enter a: ");
  30. scanf ("%f", &a);
  31. printf("Enter b: ");
  32. scanf ("%f", &b);
  33. r=a*b;
  34. printf("Area=%f", r);
  35. break;
  36. case 3: //triangle
  37. printf("Enter a(base): \n");
  38. scanf ("%f", &a);
  39. printf("Enter b(hight): \n");
  40. scanf ("%f", &b);
  41. t=0.5*(a*b);
  42. printf("Area=%f", t);
  43. break;
  44. }
  45.  
  46. }

Решение задачи: «Как правильно использовать Switch()»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6. int main()
  7. {
  8.     float a,b, area;
  9.     float s, r, t;//square, rectangle, triangle
  10.     int funk;
  11.  
  12.     printf("Programm calculate areas of the figures \n");
  13.     printf("square=1\n");
  14.     printf("rectangle=2\n");
  15.     printf("triangle=3\n");
  16.     printf("Please choose figure: ");
  17.     scanf ("%d", &funk);
  18.     switch (funk)
  19.     {
  20.     case 1:    //квадрат s = a**2
  21.     printf("Enter a: ");
  22.     scanf ("%f", &a);
  23.     s=a*a; //квадрат числа
  24.     printf("Area=%f", s);
  25.     break;
  26.  
  27.     case 2:   // прямоугольник
  28.     printf("Enter a: ");
  29.     scanf ("%f", &a);
  30.     printf("Enter b: ");
  31.     scanf ("%f", &b);
  32.     r=a*b;
  33.     printf("Area=%f", r);
  34.     break;
  35.  
  36.     case 3:  //треугольник
  37.     printf("Enter a(base): \n");
  38.     scanf ("%f", &a);
  39.     printf("Enter b(hight): \n");
  40.     scanf ("%f", &b);
  41.     t=0.5*(a*b);
  42.     printf("Area=%f", t);
  43.     break;
  44.  
  45.     }
  46.  
  47.  
  48. }

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

  1. Объявлены переменные: a, b, area (площадь), s, r, t (для квадрата, прямоугольника и треугольника соответственно), funk (для выбора фигуры).
  2. Выводится приглашение для выбора фигуры.
  3. Пользователь выбирает фигуру, вводя число от 1 до 3.
  4. В зависимости от выбранной фигуры выполняется соответствующий код.
  5. Если выбрана фигура квадрат, программа запрашивает сторону квадрата и вычисляет его площадь как квадрат введенного значения.
  6. Если выбрана фигура прямоугольник, программа запрашивает длину и ширину прямоугольника и вычисляет его площадь как произведение этих двух значений.
  7. Если выбрана фигура треугольник, программа запрашивает длину основания и высоту треугольника и вычисляет его площадь как половину произведения этих двух значений.
  8. В конце программы выполняется оператор break, который завершает работу программы в текущем блоке switch.

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


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

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

12   голосов , оценка 3.917 из 5

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

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

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