Определить, в какой четверти будет точка - C (СИ)
Формулировка задачи:
здравствуйте. Я только буквально неделю назад начал проходить язык С.
Для создания проектов и компилирования использую MS visual C++ express edition.
Так вот, задача заключается в том, что бы по данным Х и Y определить, в какой четверти будет точка. По идее задача простая, то есть если Х и Y больше нуля, то это первая четверть, если Хменьше нуля, а у больше нуля, то вторая и т.д..
Но у меня тут возникла проблема - при исключении всех явно не верных случаев (х и у равны нулю, или если точка лежит на осях х или у), какие бы даные я ни вводил, высвечивается всё равно так, что точка находится в первой четверти, хотя не должна... прошу помощи.
я пытался отладить задачу, но у меня что-то не получается всё равно.
И кстати, хочу обратить внимание - я только начал изучать С,поэтому моя программа обычно заканчивается на том или ином результате.
Листинг программы
- // Ulesanne2.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <math.h>
- #include <conio.h>
- using namespace std;
- int _tmain(int argc, _TCHAR* argv[])
- {
- double x, y, ch;
- ch=0;
- cout<<"Enter X"<<endl<<"X=";
- cin>>x;
- cout<<"Enter Y"<<endl<<"Y=";
- cin>>y;
- if ((x>0)&&(y>0)) ch=1;
- else if ((x<0)&&(y>0)) ch=2;
- else if ((x<0)&&(y<0)) ch=3;
- else if ((x>0)&&(y<0)) ch=4;
- else if ((x==0)&&(y!=0)) {cout<<"This point is at the Y-axis."<<endl;
- getch ();
- return 0;}
- else if ((x!=0)&&(y==0)) {cout<<"This point is at the X-axis"<<endl;
- getch ();
- return 0;}
- else {
- cout<<"This point is at the origin";
- getch ();
- return 0;}
- if (ch=1) cout<<"This point is in the first quarter";
- else if (ch=2) cout<<"This point is on the second quarter";
- else if (ch=3) cout<<"This point is on the third quarter";
- else if (ch=4) cout<<"This point is on the fourth quarter";
- else if ((ch<=0)||(ch>=5)) cout<<"An unexpected error occured. The program will now close.";
- cout<<ch;
- getch ();
- return 0;
- }
Решение задачи: «Определить, в какой четверти будет точка»
textual
Листинг программы
- #include <conio.h>
- int main()
- {
- int x, y, ch;
- ch=0;
- printf("Enter X\nX=");
- scanf_s("%d", &x);
- printf("Enter Y\nY=");
- scanf_s("%d", &y);
- if (x > 0 && y > 0)
- ch=1;
- if (x < 0 && y > 0)
- ch=2;
- if (x < 0 && y < 0)
- ch=3;
- if (x > 0 && y < 0)
- ch=4;
- if (x == 0 && y != 0)
- {
- printf("This point is at the Y-axis.\n");
- _getch ();
- return 0;
- }
- if (x !=0 && y == 0)
- {
- printf("This point is at the X-axis\n");
- _getch ();
- return 0;
- }
- if(x == 0 && y == 0)
- {
- printf("This point is at the origin\n");
- _getch ();
- return 0;
- }
- switch(ch)
- {
- case 1:
- printf("This point is in the first quarter");
- break;
- case 2:
- printf("This point is on the second quarter");
- break;
- case 3:
- printf("This point is on the third quarter");
- break;
- default:
- printf("This point is on the fourth quarter");
- }
- _getch ();
- return 0;
- }
Объяснение кода листинга программы
- Объявлены переменные x, y, ch типа int.
- Переменная ch инициализируется значением 0.
- Выводится приглашение для ввода значения переменной x.
- С помощью функции scanf_s в переменную x записывается введенное пользователем значение.
- Выводится приглашение для ввода значения переменной y.
- С помощью функции scanf_s в переменную y записывается введенное пользователем значение.
- Осуществляется проверка: если x > 0 и y > 0, то переменная ch принимает значение 1.
- Осуществляется проверка: если x < 0 и y > 0, то переменная ch принимает значение 2.
- Осуществляется проверка: если x < 0 и y < 0, то переменная ch принимает значение 3.
- Осуществляется проверка: если x > 0 и y < 0, то переменная ch принимает значение 4.
- Осуществляется проверка: если x == 0 и y != 0, то выводится сообщение
This point is at the Y-axis
и программа завершается. - Осуществляется проверка: если x !=0 и y == 0, то выводится сообщение
This point is at the X-axis
и программа завершается. - Осуществляется проверка: если x == 0 и y == 0, то выводится сообщение
This point is at the origin
и программа завершается. - Осуществляется проверка значения переменной ch с помощью оператора switch.
- Если ch равно 1, то выводится сообщение
This point is in the first quarter
. - Если ch равно 2, то выводится сообщение
This point is on the second quarter
. - Если ch равно 3, то выводится сообщение
This point is on the third quarter
. - Если ch не равно 1, 2 и 3, то выводится сообщение
This point is on the fourth quarter
. - Вызывается функция _getch, которая предназначена для приостановки выполнения программы до тех пор, пока пользователь не нажмет какую-либо клавишу.
- Программа возвращает значение 0, что означает успешный конец работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д