Технологии

Как переделать простой код с If на switch - вопрос №1646762

Производится одиночный выстрел по мишени в виде круга, разделенного на пять колец, с шагом в 1 сантиметр. За попадание в «яблочко» начисляется 10 баллов, за попадание в каждое очередное
кольцо соответственно 8, 6, 4, 2, 1 балл. За попадание в «молоко» — 0 баллов. Определить количество баллов, набранных после выстрела.

#include <iostream>
#include <windows.h>
using namespace std;

int main(){
system(«chcp 1251>text»);
int x,
y,
sumXY;
cout<<"Ââåäèòå x:";
cin>>x;
cout<<"Ââåäèòå y:";
cin>>y;
sumXY=x*x+y*y;

if(sumXY<=1){
cout<<«points 10»;
}
else if(sumXY<=4){
cout<<«points 8»;
}
else if(sumXY<=9){
cout<<«points 6»;
}
else if(sumXY<=16){
cout<<«points 4»;
}
else if(sumXY<=25){
cout<<«points 2»;
}
else if(sumXY<36){
cout<<«points 1»;
}
else if(sumXY==36){
cout<<"Ïîïàäàíèå â ãàáàðèò";
}
else {
cout<<"Íå ïîïàë";
}

return 0;

}

сентябрь 30, 2015 г.

  • Всего ответов: 1

  • Виталий - аватарка

    Виталий

    2-й в Технологиях

    Здравствуйте.
    Как вариант, вот:
    #include <iostream>
    #include <windows.h>
    using namespace std;
    int main() {
        system(«chcp 1251>text»);
        int x,
                y,
                sumXY;
        cout << «Vvedite x:»;
        cin>>x;
        cout << «Введите y:»;
        cin>>y;
        sumXY = x * x + y*y;

        switch(sumXY)
        {
            case 0… 1: cout << «points 10»; break;
            case 2… 4: cout << «points 8»; break;
            case 5… 9: cout << «points 6»; break;
            case 10… 16: cout << «points 4»; break;
            case 17… 25: cout << «points 2»; break;
            case 26… 35: cout << «points 1»; break;
            case 36: cout << «попадание в габарит»; break;
            default: cout << «не попал»; break;
        }
        return 0;
    }
    Однако, есть вероятность что не все компиляторы смогут собрать это.
    Данный пример собирал gcc 4.7.1

    октябрь 3, 2015 г.

Похожие вопросы