Как правильно использовать 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;
}
}
Объяснение кода листинга программы
- Объявлены переменные: a, b, area (площадь), s, r, t (для квадрата, прямоугольника и треугольника соответственно), funk (для выбора фигуры).
- Выводится приглашение для выбора фигуры.
- Пользователь выбирает фигуру, вводя число от 1 до 3.
- В зависимости от выбранной фигуры выполняется соответствующий код.
- Если выбрана фигура
квадрат, программа запрашивает сторону квадрата и вычисляет его площадь как квадрат введенного значения. - Если выбрана фигура
прямоугольник, программа запрашивает длину и ширину прямоугольника и вычисляет его площадь как произведение этих двух значений. - Если выбрана фигура
треугольник, программа запрашивает длину основания и высоту треугольника и вычисляет его площадь как половину произведения этих двух значений. - В конце программы выполняется оператор break, который завершает работу программы в текущем блоке switch.