Помогите составить код с операторами switch,break,goto

172
21 января 2019, 17:30

Сейчас делаю задачу из интернета,основная цель используя оператор switch, составить программу для получения таблицы значений функции У для целочисленных значений аргумента Х из интервала(-10;15).

Когда Х(7,9,11), У=sqrt(fabs(x-10))

Когда Х(6,8,10,12), У=pow(tan(x/5),2)

Когда Х(-2,5), У=2*sin(x/p)

Во всех остальных случаях У=exp(x+2)

Я бы хотел что бы в ответ выводились все варианты X и У + сократить код. Как это можно сделать? P.S. За ошибки сильно не пинайте,пожалуйста. 2 неделю обучаюсь.

    #include<math.h>
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
    int x,y,p;
    switch(-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
    {
    case 7:   
    cout <<"X=7,y=sqrt(fabs(x-10))";
    case 11:
    cout <<"X=11,y=sqrt(fabs(x-10))";
    case 9:
    cout <<"X=9,y=sqrt(fabs(x-10))";
    case 6:
    cout <<"X=6,y=pow(tan(x/5),2)";
    case 8:
    cout <<"X=8,y=pow(tan(x/5),2)";
    case 10:
    cout <<"X=10,y=pow(tan(x/5),2)";
    case 12:
    cout <<"X=12,y=pow(tan(x/5),2)";
    case -2:
    cout <<"X=-2,y=2*sin(x/p)";
    case 5:
    cout <<"X=5,y=2*sin(x/p)";
    default:
    cout <<"X=!(-10...15),y=exp(x+2)";
    }
    getchar();
}
Answer 1

У вас непонятно, что такое p, далее, x действительно должен быть целым, но y - double. Если позарез нужен switch - то, например, так (еще раз обратите внимание на p):

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
    double p = 1.0; // ???;  <-- Тут надо определить ваше p
                    // Чтоб компилировалось, я дал ему значение 1
    cout << "  x       y\n-----------------\n";
    for(int x = -10; x <= 15; ++x)
    {
        double y;
        switch(x)
        {
        case  7:
        case  9:
        case 11: y = sqrt(fabs(x-10)); break;
        case  6:
        case  8:
        case 10:
        case 12: y = tan(x/5.0); y *= y; break;
        case -2:
        case  5: y = 2*sin(x/p); break;
        default: y = exp(x+2);
        }
        cout << setw(3) << x << "  " << setprecision(7) << setw(12) << y << endl;
    }
}

P.S. Для goto места не нашел, разве что цикл через него вручную делать...

Answer 2
  #include<math.h>
  #include<stdio.h>
  #include<iostream>
  using namespace std;
  void main()
  {
     int x,y;
     cin>>x;
     switch(x)
     {
       case 7:
       case 9:
       case 11:
         y=sqrt(fabs(x-10));
         cout<<"x= "<<x<<"y=sqrt(fabs("<<x<<"-10))="<<y;
         break;
       case 6:
       case 8:
       case 10:
       case 12:
          y=pow(tan(x/5),2)
          cout<<"x= "<<x<<"y=pow(tan("<<x<<"/5),2)="<<y;
          break;
       case -2:
       case 5:
          y=2*sin(x/p);cout<<y;
          break;
       default:
         y=exp(x+2);cout<<y;
         break;
     }
     getchar();
  }
READ ALSO
Вывод имени USB-девайса

Вывод имени USB-девайса

Пытаюсь вывести имя нового USB-девайса, когда его подключаютПроблема в том, что при вставке флешки messagebox появляется, но на нем ничего нет

184
CLion отображение символов

CLion отображение символов

Неправильно отображаются символы в сообщениях об ошибках в терминале CLionСреди руководств в инете полезной информации не нашел, поэтому надеюсь...

144
Меню в консоли через C++

Меню в консоли через C++

заинтересовала одна вещь и возможность ее реализацииХочу создать меню выбора в Командной строке на C++, это должно выглядеть примерно так:

161
Найти максимальное значение массива

Найти максимальное значение массива

По условию задачи можно задать любой массив, так что я его рандомизировалСейчас только начал составлять код, при компиляции выдает кучу ошибок,...

310