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

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

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

Добрый вечер, пишу программу с использованием SWITCH() Суть проги: Напишите программу, которая вычисляет площадь поверхности плоских фигур (квадрат, треугольник, прямоугольник) в В зависимости от выбранного варианта 1 (квадрат), 2 (площадь), 3 (прямоугольник). С помощью переключателя SWITCH ().
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include<stdlib.h>
using namespace std;

int main()
{
    float a,b,area;
    int square, rectangle, triangle;
    int square=1, rectangle=2, triangle=3;
    
    printf("Programm calculate areas of the figures \n");
    printf("square=1\n");
    printf("rectangle=2\n");
    printf("triangle=3\n");
    printf("Please choose figure: \n");
    scanf ("%d", &square, &rectangle, &triangle);
    switch (square= '1', rectangle= '2' , triangle= '3')
    {
    case '1': area = a * b; break;
    {
    printf("Enter a: \n");
    scanf ("%d", &a);
    printf("Enter b: \n");
    scanf ("%d", &b);
    }
    
    case '2': area = a * b; break;
    {
    printf("Enter a: \n");
    scanf ("%d", &a);
    printf("Enter b: \n");
    scanf ("%d", &b);
    }
    
    case '3': area = 0.5*(a*b) ; break;
    {
    printf("Enter a(base): \n");
    scanf ("%d", &a);
    printf("Enter b(hight): \n");
    scanf ("%d", &b);
    }
    }

}

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

вот более менее рабочий
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include<stdlib.h>

int main()
{
    float a,b,area;
    int square, rectangle, triangle;
    int f;
    int c=1, d=2, e=3;
    
    printf("Programm calculate areas of the figures \n");
    printf("square=1\n");
    printf("rectangle=2\n");
    printf("triangle=3\n");
    printf("Please choose figure: ");
    scanf ("%d", &f);
    switch (f)
    {
    case 1: area = a * b; 
    printf("Enter a: \n");
    scanf ("%d", &a);
    printf("Enter b: \n");
    scanf ("%d", &b);
    square = a * b; 
    printf("Area = \n", &square);
    break;
    
    case 2: area = a * b; break;
    printf("Enter a: \n");
    scanf ("%d", &a);
    printf("Enter b: \n");
    scanf ("%d", &b);
    
    case 'd=3': area = 0.5*(a*b) ; break;
    printf("Enter a(base): \n");
    scanf ("%d", &a);
    printf("Enter b(hight): \n");
    scanf ("%d", &b);
    
    }

}
последняя версия рабочая но не выводит правильный ответ
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main()
{
    float a,b, area;
    int s, r, t;//square, rectangle, triangle
    int funk;
    int c=1, d=2, e=3;
    
    printf("Programm calculate areas of the figures \n");
    printf("square=1\n");
    printf("rectangle=2\n");
    printf("triangle=3\n");
    printf("Please choose figure: ");
    scanf ("%d", &funk);
    switch (funk)
    {
    case 1:    //square
    printf("Enter a: ");
    scanf ("%f", &a);
    printf("Enter b: ");
    scanf ("%f", &b);
    s=a*b; 
    printf("Area=%f", s);
    break;
    
    case 2:   // rectangle
    printf("Enter a: ");
    scanf ("%f", &a);
    printf("Enter b: ");
    scanf ("%f", &b);
    r=a*b;
    printf("Area=%f", r);
    break;
    
    case 3:  //triangle
    printf("Enter a(base): \n");
    scanf ("%f", &a);
    printf("Enter b(hight): \n");
    scanf ("%f", &b);
    t=0.5*(a*b);
    printf("Area=%f", t);
    break;
    
    }

}

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

textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
 
 
int main()
{
    float a,b, area;
    float s, r, t;//square, rectangle, triangle
    int funk;
 
    printf("Programm calculate areas of the figures \n");
    printf("square=1\n");
    printf("rectangle=2\n");
    printf("triangle=3\n");
    printf("Please choose figure: ");
    scanf ("%d", &funk);
    switch (funk)
    {
    case 1:    //квадрат s = a**2
    printf("Enter a: ");
    scanf ("%f", &a);
    s=a*a; //квадрат числа
    printf("Area=%f", s);
    break;
 
    case 2:   // прямоугольник
    printf("Enter a: ");
    scanf ("%f", &a);
    printf("Enter b: ");
    scanf ("%f", &b);
    r=a*b;
    printf("Area=%f", r);
    break;
 
    case 3:  //треугольник
    printf("Enter a(base): \n");
    scanf ("%f", &a);
    printf("Enter b(hight): \n");
    scanf ("%f", &b);
    t=0.5*(a*b);
    printf("Area=%f", t);
    break;
 
    }
 
 
}

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

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

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


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

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

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