Программа для вычисления системы после ввода x Программа зацикливается.
#include
#include
#include
#include
#include
int main(){
int menu = 0, x = 0;
float y = 0;
using namespace std;
while (menu != 4){
printf("1:Vvod dannux\n");
printf("2:Raschet dannux\n");
printf("3:Vuvod dannux\n");
printf("4:Vuhod\n");
scanf_s("%i", &menu);
switch (menu){
case 1:
while (1)
{
printf("Vvedite x\n");
cin >> x;
if (-1 <= x && x <= 1)
{
break;
}
}
break;
case 2:
if (x < 0)
{
y = pow(sin(x), 3) - sin(x / 2);
}
else{
y = pow(sin(x), 2) + sin(x - 1);
}
break;
case 3: if (x < 0)
{
printf("y=sin^3(x)-sin(x/2)=%f", y);
}
else{
printf("y=sin^2(x)+sin(x-1)=%f", y);
}
break;
case 4:
break;
}
}
return 0;
}
Другие языки программирования и технологии
С++.Почему программа зацикливается после ввода Х
#include <iostream>
using namespace std;
int main() {
int menu = 0;
float y = 0, x = 2;
bool flag = false;
while (true) {
if (x == 2) cout << "\n1:Vvod dannux\n4:Vuhod\n";
else if (!flag) cout << "\n1:Vvod dannux\n3:Vuvod dannux\n4:Vuhod\n";
else cout << "\n1:Vvod dannux\n2:Raschet dannux\n3:Vuvod dannux\n4:Vuhod\n";
cin.sync();
cin >> menu;
switch (menu) {
case 1:
while (true) {
cout << "Vvedite x: ";
cin >> x;
if (x >= -1 && x <= 1) {
flag = true;
break;
}
}
break;
case 2:
if (x < 0) y = pow(sin(x), 3) - sin(x / 2);
else y = pow(sin(x), 2) + sin(x - 1);
break;
case 3:
if (x < 0) cout << "y = sin^3(x) - sin(x / 2) = " << y;
else cout << "y = sin^2(x) + sin(x-1) = " << y;
break;
case 4: exit(0);
}
}
return 0;
}
using namespace std;
int main() {
int menu = 0;
float y = 0, x = 2;
bool flag = false;
while (true) {
if (x == 2) cout << "\n1:Vvod dannux\n4:Vuhod\n";
else if (!flag) cout << "\n1:Vvod dannux\n3:Vuvod dannux\n4:Vuhod\n";
else cout << "\n1:Vvod dannux\n2:Raschet dannux\n3:Vuvod dannux\n4:Vuhod\n";
cin.sync();
cin >> menu;
switch (menu) {
case 1:
while (true) {
cout << "Vvedite x: ";
cin >> x;
if (x >= -1 && x <= 1) {
flag = true;
break;
}
}
break;
case 2:
if (x < 0) y = pow(sin(x), 3) - sin(x / 2);
else y = pow(sin(x), 2) + sin(x - 1);
break;
case 3:
if (x < 0) cout << "y = sin^3(x) - sin(x / 2) = " << y;
else cout << "y = sin^2(x) + sin(x-1) = " << y;
break;
case 4: exit(0);
}
}
return 0;
}
int main()
{
int menu = 0, x = 0;
float y = 0;
using namespace std;
while (menu != 4){
printf("1:Vvod dannux\n");
printf("2:Raschet dannux\n");
printf("3:Vuvod dannux\n");
printf("4:Vuhod\n");
cin >> menu;
while (!cin)
{
cin.clear();
while (cin.get() != '\n')
continue;
printf("1:Vvod dannux\n");
printf("2:Raschet dannux\n");
printf("3:Vuvod dannux\n");
printf("4:Vuhod\n");
cin >> x;
}
switch (menu){
case 1:
printf("Vvedite x\n");
cin >> x;
while (!cin)
{
cin.clear();
while (cin.get() != '\n')
continue;
printf("Vvedite x\n");
cin >> x;
}
break;
case 2:
if (x < 0)
{
y = pow(sin(x), 3) - sin(x / 2);
}
else
{
y = pow(sin(x), 2) + sin(x - 1);
}
break;
case 3: if (x < 0)
{
printf("x = %d y=sin^3(x)-sin(x/2)=%f",x, y);
}
else{
printf("x = %d y=sin^2(x)+sin(x-1)=%f",x, y);
}
break;
case 4:
break;
}
}
return 0;
}
Но я бы переписал весь код, по дурацки получается, вводишь 2 и как будто ничего не происходит. Вообще тут меню не обязательно, просто зациклить повторение программы и все. Ввел не корректное значение Х и начинается все по новой.
{
int menu = 0, x = 0;
float y = 0;
using namespace std;
while (menu != 4){
printf("1:Vvod dannux\n");
printf("2:Raschet dannux\n");
printf("3:Vuvod dannux\n");
printf("4:Vuhod\n");
cin >> menu;
while (!cin)
{
cin.clear();
while (cin.get() != '\n')
continue;
printf("1:Vvod dannux\n");
printf("2:Raschet dannux\n");
printf("3:Vuvod dannux\n");
printf("4:Vuhod\n");
cin >> x;
}
switch (menu){
case 1:
printf("Vvedite x\n");
cin >> x;
while (!cin)
{
cin.clear();
while (cin.get() != '\n')
continue;
printf("Vvedite x\n");
cin >> x;
}
break;
case 2:
if (x < 0)
{
y = pow(sin(x), 3) - sin(x / 2);
}
else
{
y = pow(sin(x), 2) + sin(x - 1);
}
break;
case 3: if (x < 0)
{
printf("x = %d y=sin^3(x)-sin(x/2)=%f",x, y);
}
else{
printf("x = %d y=sin^2(x)+sin(x-1)=%f",x, y);
}
break;
case 4:
break;
}
}
return 0;
}
Но я бы переписал весь код, по дурацки получается, вводишь 2 и как будто ничего не происходит. Вообще тут меню не обязательно, просто зациклить повторение программы и все. Ввел не корректное значение Х и начинается все по новой.
убери while
Похожие вопросы
- Почему программа работает некорректно при вводе цифры "0"?
- Как сделать программу которая при вводе текста, удаляет из текста все слова, содержащие букву «я». (PascalABC)
- Почему она зацикливается? не пойму =(( помогите =(( язык с++
- Как на паскале написать код программы,которая при вводе числа,выводит его словами?
- Почему программа Php Devel Studio,содержит вирус?
- Почему программы на одних ЯП выполняются быстрее, чем на других?
- А почему программы написанные на C/C#/C++ имеют больший вес чем на tasm/masm?
- Почему программа не работает? помогите пожалуйста(Си)
- Мастера фотошопа , подскажите почему программа не сохряняет файл для WEB? возникает проблема закрывающая программу
- Почему программа не компилируется в Borland C++ Builder?