Определить, в какой четверти будет точка - 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, что означает успешный конец работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д